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 小时前
DicomViewer24 的 CI 又红了:MPR 测试偶发失败排查记
java·服务器·前端
troy1281 小时前
用 Cube.js 构建金融财务系统的 Semantic Layer:从架构到实战
javascript·金融·架构
泡海椒4 小时前
JQuick-Excel FORMAT 导出格式实战:日期、金额显示与 TRANSFORM 的边界
前端·python·excel
迅猛龙办公室10 小时前
Python输出当前计算机的系统日期和时间
开发语言·前端·python
小狼1545410 小时前
浏览器扩展脚本为什么有时候不生效:注入时机、iframe 和单页路由,多多开票助手
前端·chrome
じòぴé南冸じょうげん10 小时前
油猴脚本突然发现变成灰色了,无法使用?页面不生效?刷新页面没反应?
前端
Csvn12 小时前
组合式 API(Composition API)
前端
火柴就是我13 小时前
Android 打包报错 25.0.3
android·前端
BD_Marathon13 小时前
消息对象中字段的说明
java·前端·python