当前位置: 首页 > 后端技术 > Python

JS面试经典知识(一)

时间:2023-03-26 18:09:23 Python

前端面试题精选原生JS1.ES6新特性:let(声明变量)const(声明常量,常量不可修改)var、let、const的区别\1.let声明为const的变量没有变量提升。如果我们要使用这个变量,需要在变量定义之后使用;\2.let和const不能重复声明变量,重复会报错;\3.使用let和const声明全局变量不会给window添加属性;\4.let和const出现在代码块中,会把代码块(字面量声明对象除外)变成块级作用域,会有一个临时死区类(createclass)import/export(createimport/exportmodule(file/component)basedonES6modulespecification)newset(arraydeduplication)Symbol(uniquevalue)vara=Symbol('qqq')...ary(expansionoperator,Remainingoperator)**${}**模板字符串解构赋值let{a}=obj;let[b]=aryforofloop()=>{}箭头函数箭头函数和普通函数的区别:\1.箭头函数是匿名函数,不能用作构造函数。新\2。箭头函数没有原型属性。不管这是谁,不管是谁,不。它是窗口\4。不能使用arguments对象,函数体中不存在该对象。数组新方法:flat、find、findIndex对象新方法:Object.assign()Object.values()Object.keys()Object.create()...2.JS数据类型基本数据类型:number;boolean布尔值:有两个值true,false;stringstringnull空对象;undefinedundefined值(很多浏览器的初始值是undefined)Symbol()产生一个唯一的值,没有人重复null与undefined的区别:null是一个表示“无”的对象,转换为值时为0。undefined是表示“无”的原始值,转换为值时为NaN。当声明的变量还没有被初始化时,变量的默认值为“缺失值”,即这里应该有一个值,但还没有定义。典型用法是:\1。当声明变量但未赋值时,它等于undefined\2。函数调用时,该提供的参数没有提供,参数等于undefined\3。该对象没有分配属性,并且该属性的值为未定义\4。当函数没有返回值时,默认返回undefinednull,意思是“没有对象”,即那里应该没有值。典型用法是:\1。作为函数的参数,意味着函数的参数不是对象\2。作为对象原型链的终点引用数据类型:object。普通物体。数组对象。常规对象(匹配字符串的规则)。日期对象。函数对象...对象的存储过程:\1.开辟空间地址\2.将键值对存储在该空间地址的堆内存中\3。把这个对象指针赋给变量名letobj={a:1,fn:(function(val){//赋给fn的是自执行函数的执行结果,未定义//自执行函数只会执行一次console.log(val);})(obj.a)};letobj2=obj;//两者代表同一个地址;//获取属性obj.fn或obj['fn的值']//添加新属性:obj.c=100orobj['c']=100//Truedeletedeleteobj.a(严格模式不支持该方法);误删:obj.a=null;//引用类型练习leta=3;letb=newNumber(3);letc=3;console.log(a==b);console.log(a===b);console.log(b===c);//==========================consta={};constb={key:"b"};constc={key:"c"};a[b]=123;[c]=456;控制台日志(a[b]);基本数据类型和引用数据类型的区别:基本数据类型是操作值,引用数据类型操作的是堆内存空间地址布尔值转换:0NaN''nullundefined转换成布尔值是false,其余为true检查有效数的方法:isNaN常用的数据类型检测方法:typeofconstructorinstanceofObject.prototype.toString.call()比较运算符:==相对比较:默认会进行类型转换;如果转换后的值相等,则结果为true===绝对比较,不仅值必须相同,类型也必须相同。引用数据类型之间的比较取决于它们是否是同一地址;逻辑运算符:||表示or,前者为真,前者为假&&表示前者为后者,前者为假OpenWrite,多岗位操作工具平台发布