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:对象私有属性(模拟私有),定义常量,防止对象属性名冲突

相关推荐
总要学点什么21 分钟前
第105篇:三维特效-流动图片墙体效果——让箭头沿墙长滚,它俩竟是同一份代码
开发语言·javascript·ecmascript·gis·webgl·材质·cesium
Agent世界2 小时前
用 CDP 做发布自动化:四道机器闸门与产物验收
前端·javascript
FungLeo2 小时前
成为全栈·Vue 管理后台篇·编辑器图片上传:从文件选择到文章附件关联
前端·vue.js·编辑器·markdown·文件上传·formdata·附件管理
总要学点什么2 小时前
第104篇:三维特效-流动墙体效果——让贴图沿墙流动,它却只肯走一条对角线
开发语言·javascript·ecmascript·gis·webgl·材质·cesium
某哈压力大2 小时前
SSH 突然 Connection reset?不是密钥坏了,是 OpenSSL 把 sshd 干趴了
前端·node.js·命令行
程序员大阳2 小时前
副队长ES6+教程(3)--解构赋值
前端·javascript·es6·赋值·解构
神膘护体小月半2 小时前
css - 元素背景图由 hover 触发,初次加载时闪动的解决办法
前端·javascript·css
程序员大阳3 小时前
副队长ES6+教程(2)--let 与 const
前端·javascript·es6·const·let·var
deli0073 小时前
写满 200GB 后 SSD 为什么掉到 95MB/s?SLC 缓存模型实测
前端
曦樂~4 小时前
【Web Development】03JavaScript 基础和事件
开发语言·前端·javascript