es6基础知识

16.你对面向对象编程的理解,面向过程和面向对象有什么区别?

对面向对象的理解:以对象为核心,靠封装、继承、多态组织代码,绑定数据与操作,强调对象交互和代码复用。

与面向过程的区别:面向对象以类/对象为模块,数据+处理绑定,独立性高;面向过程以函数为模块数据与处理分离。

  1. ?.,||,&&,**是什么?

?.是可选链操作符,用于安全访问深层对象属性,遇到null/undefined 时短路返回 undefined;

||(逻辑或运算符)如果左操作数为 false 或 undefined,则将右操作数赋值给左操作数。

&&(逻辑与运算符)如果左操作数为 true,则将右操作数赋值给左操作数。

** 是指数运算符,用于计算数值的乘方幂运算。

  1. async 和 await的作用是什么

async和 await 结合后能让异步代码呈现同步代码的直观结构,大幅简化异步函数写法。

async函数返回值为 promise 对象,promise 对象的结果由 async 函数执行的返回值决定

await必须写在 async 函数中,右侧的表达式一般为 promise 对象,返回的是 promise 成功的值,await 的 promise 失败了, 就会抛出异常, 需要通过 try...catch 捕获处理;

19.对象方法?

Object.values():返回一个给定对象的所有可枚举属性值的数组;

Object.entries():能将对象转换为一个包含键值对的数组,方便对对象进行遍历或转换操作;

trimStart()消除前面的空格

trimEnd();消除后面的空格

flat()将数组扁平化,降维

flatMap()先对数组执行 map() 映射,再对结果执行 flat()

  1. export 和 import分别有几种写法

export(导出)有三种写法:

默认导出

let school = '大喇叭';

export default shool;

export default是 ES6 模块默认导出的语法

分别导出

export function teach() {

console.log("我们可以教你开发技术!");

};

混合导出

export {

school,

teach

}

import(导入)对应有三种写法:

默认导入

import school from './school.js';

console.log(school);// 大喇叭

分别导入

import {school, teach} from './school.js';

console.log(school);// 大喇叭

混合导入

import * as school from './school.js';

console.log(school.school);// 大喇叭

21.如何检测一个数组是否包含某个值?

includes()有则返回true,无则返回false。

findIndex()是用于查找数组中第一个满足条件的元素的索引的方法,返回该元素的索引值;若未找到,则返回 -1。

find()查找数组中第一个满足指定条件的元素的方法,找到的返回元素本身;若未找到则返回 undefined。

  1. 给函数参数设置默认值有几种方法、最少3种

直接设置默认值:直接在参数声明时指定默认值。

结合解构赋值:结合对象解构为参数设置默认值,适合多参数场景。

使用函数表达式:默认值设置为一个函数调用,每次调用原函数时动态生成默认值。

23.箭头函数语法?简写规则

提供了一种更加简洁的函数书写方式,使用箭头(=>)定义函数,多用于匿名函数的定义;

简写规则:若只有一个参数,可省略参数外的括号;若函数体只有一条返回表达式的语句,可省略大括号和 return 关键字;若返回对象字面量,需用括号包裹对象(避免与函数体大括号混淆)。

24.如何对比两个对象是否相等?如何合并两个对象?

比较:Object.is()可以进行比较,即判断两个对象的值是否完全相同。

合并:Object.assign()方法、使用扩展运算符。

25:什么是数组解构赋值?写出基础语法示例。对象解构赋值如何设置默认值?核心作用是什么?1:快速把数组里面的元素依次拿出来赋值给变量不用挨个下标去取。基础语法2:const user = { name: "小明" }; const { name, age = 20 } = user; console.log(age); // 203:简化代码:不用重复写 .属性 / 下标 获取数据

快速提取数组、对象里面的值

26:ES6 扩展运算符... 的作用是什么?如何用扩展运算符合并两个数组、复制一个对象?

把数组 / 对象里面的东西,"摊开、拿出来"合并数组const arr1 = 1,2; const arr2 = 3,4; const newArr = ...arr1, ...arr2; console.log(newArr); // 1,2,3,4复制数组const obj = { name:'张三', age:18 }; const newObj = { ...obj }; console.log(newObj);

27.箭头函数的简写规则有哪些?箭头函数和普通函数最大的两点核心区别是什么

简写规则

1.只有一个形参:小括号 () 可以省略

2:函数体只有一句 return 返回表达式:大括号{}和return可以一起省略3:无参数 或者 多个参数:小括号不能省

箭头函数 和普通函数最大两点核心区别箭头函数简写方便;无自身 this,无 arguments。

28:Symbol是什么类型?核心特性是什么?Symbol的主要应用场景有哪些?

1:Symbol 是 ES6 新增的原始(基本)数据类型,用来生成独一无二的值。

2:每调用一次 Symbol(),得到的值永远唯一,不能用 new Symbol(),它不是构造函数,不能参与隐式类型转换,不能直接转数字;可以转字符串,

3:对象私有属性(模拟私有),定义常量,防止对象属性名冲突

相关推荐
风骏时光牛马1 小时前
AI多模块协同自动化工作流
前端
zhangminghuan1 小时前
前端面试应对技巧
前端·面试·职场和发展
计算机魔术师1 小时前
潜伏14年的PHP致命洞,AI跑两天就交卷了
前端
IT_陈寒1 小时前
Vue的这个响应式陷阱我居然现在才发现
前端·人工智能·后端
Python自动化直播3 小时前
智能脚本批量管理拆开看:导入、导出、重写、试听
前端·python·ai·秒播
开开心心就好3 小时前
发票信息录入太麻烦?离线工具一键转表格
运维·服务器·前端·pdf·ocr·maven·intellij-idea
এ慕ོ冬℘゜4 小时前
ES Promise.all/ Promise.race
前端·javascript·elasticsearch
喜欢打篮球的普通人4 小时前
LLVM 前端与优化层:Clang 如何把 C 代码变成 IR
c语言·前端·状态模式
只睡四小时5 小时前
端侧推理:face-api.js 首屏 92% 是白下载的
开发语言·javascript·人脸识别·ecmascript·tensorflow.js·face-api.js·端侧推理