wordpress站点名字体,wordpress筛选主题,个人网站源码下载,兰州网站程序建设一、JavaScript中的数据类型JavaScript中共有八种数据类型#xff1a;Number、String、Boolean、Object、Null、Undefined、null、Symbol、BigInt 其中Symbol和BigInt是ES6新增的数据类型Symbol代表独一无二且不可改变的数据类型#xff0c;主要为了解决可能出现的全局变量冲…一、JavaScript中的数据类型JavaScript中共有八种数据类型Number、String、Boolean、Object、Null、Undefined、null、Symbol、BigInt 其中Symbol和BigInt是ES6新增的数据类型Symbol代表独一无二且不可改变的数据类型主要为了解决可能出现的全局变量冲突问题BigInt是一种数字类型的数据它可以表示任意精度格式的整数二、数据类型检测方式typeof 其中数组对象和null都会被判断成Objectinstanceof 内部运行机制是在原型链中能否找到该类型的原型 只能正确判断引用数据类型不能正确判断基本数据类型constructorObject.prototype.toString.call()通过Object对象的原型方法toString来判断数据类型三、判断数组的方式通过instanceof判断通过Object.prototype.toString.call()通过obj.__proto__Array.prototype通过Array.isArray()通过Array.prototype.isPrototypeOf()四、undefined和null的区别undefined是未定义的一般对象声明了还未定义会返回undefinednull代表的含义是空对象null主要用于赋值给一些可能会返回对象的变量作为初始化typeofnull返回值是objecttypeofundefined返回值是undefined五、操作符的强制类型转换首先会判断两者类型是否相同相同的话就比较两者的大小类型不同的话进行强制类型转换会先判断是否在对比null和undefined是的话就返回true判断两者类型是否为number和string是的话就将string转化为number类型六、Object.is()和比较操作符“”“”的区别使用双等号进行判断时如果两边类型不一致会先进行强制类型转换再比较使用三等号进行判断时如果两边类型不一致不会进行强制类型转换直接返回false使用Object.is进行判断时一般情况下和三等号是一致的不同的是处理了一些特殊的情况比如-0和0不再相等两个NaN是相等的七、JavaScript中的包装类型在JavaScript中基本类型是没有属性和方法的为了便于操作基本类型的值在调用基本类型的属性或方法时JavaScript在后台隐式的将基本类型的值转换为对象JavaScript也可以使用Object函数显式的将基本类型转换为包装类型使用valueOf将包装类型转换为基本类型八、var、let和const的区别var不存在块级作用域let和const存在块级作用域var存在变量提升let和const不存在变量提升即变量只能在声明后被使用var声明的变量为全局变量并将该变量添加为全局对象的属性但let和const不会var允许重复声明变量后声明的变量会覆盖前面声明的变量但let和const不会声明变量时var和let可以不用设置初始值但const必须设置初始值let创建的变量允许改变指针指向const不允许九、箭头函数和普通函数的区别箭头函数比普通函数更简洁箭头函数没有自己的this箭头函数继承来的this指针指向永远不会改变箭头函数不能作为构造函数使用箭头函数没有自己的arguments参数箭头函数没有prototype十、扩展运算符对象扩展运算符对象的扩展运算符用于取出参数对象中所有可遍历属性拷贝到当前对象中数组扩展运算符数组的扩展运算符将数组转换为用“”分割的参数序列十一、Proxy可以实现什么功能Proxy是ES6中新增的功能可以用来自定义对象中的操作vue3中通过Proxy替换原本的Object.defineProperty来实现数据响应式十二、new操作符的执行过程首先创建一个新的空对象设置原型将对象的原型设置为函数的prototype对象将函数的this指针指向这个对象执行构造函数的代码判断函数的返回值类型如果是值类型返回创建的对象如果是引用类型返回这个引用类型的对象十三、JavaScript中的内置对象Array、Math、String、Number、DateMath方法Math.random()生成0-1之间随机小数Math.floor()向下取整Math.ceil()向上取整Math.round()四舍五入取整数Math.pow(x,y)求x的y次方Math.sqrt()求开方Number方法isFinite检查是否为有限的数字isNaN是否为NaNparseInt转化为整数parseFloat转化为浮点数Number转化为数字类型String方法charAtindex获取index位置处的字符concat连接字符串indexOf查找符合条件的第一个字符串所在位置的下标lastIndexOf查找符合条件的第一个字符串所在位置的下标从后往前查slicestartend和substringstartend截取字符串replace、toUpperCase、toLowerCase十四、对JSON的理解JSON就是一个特殊格式的字符串这个字符串可以被任意的语言识别并可以转换为任意语言的对象JSON在开发中主要用来数据交互json转jsJSON.parse(obj);js转jsonJSON.stringify();十五、JavaScript脚本延迟加载的方式有哪几种延迟加载就是等页面加载完成后再加载js文件defer属性给脚本添加defer属性这个属性会使脚本的加载与文档的解析同步进行在文档解析完成后再执行这个脚本文件async属性给脚本添加async属性这个属性会使脚本异步加载动态创建DOM方式使用setTimeOut延迟方式十六、数组有哪些方法join用指定分隔符将数组每一项拼接成字符串push向数组末尾添加元素pop向数组末尾删除元素unshift向数组首部添加元素shift向数组首部删除元素sort对数组元素进行排序reverse颠倒数组中元素顺序concat用于连接两个或多个数组slice截取部分数组splice可以实现数组的删除、替换和添加元素forEach遍历数组filter过滤功能indexOf当前值在数组中第一次出现的位置lastIndexOf当前值在数组中最后一次出现的位置find返回匹配项findIndex返回匹配项索引十七、对Ajax的理解ajax是指通过JavaScript的异步通信从服务器中获取xml文档并从中提取数据再更新网页的对应部分而不用刷新整个网页十八、变量提升变量提升即将变量声明提升到所在作用域最开始部分可以在定义语句前被访问到变量提升可以提高性能且容错性更好十九、常见的DOM操作获取DOM节点getElementByIdgetElementsByTagNamegetElementsByClassNamequerySelectorquerySelectorAll创建节点createElement删除节点removeChild添加节点appendChildinsertBefore改变元素内容innerText和innerHTML前者不识别HTML标签同时换行和空格会去除后者可以识别不去除换行和空格二十、鼠标事件onmousemove鼠标在某元素上移动onmouseover鼠标移动到某元素之上事件冒泡onmouseenter鼠标移入某元素之上没有事件冒泡onmouseleave鼠标移出元素onmouseout鼠标移出目标元素之上onmouseup鼠标按钮被释放弹起时触发onmousedown鼠标按钮被按下二十一、for in和for of的区别for in遍历获取数组的索引for of遍历获取数组的值for in会遍历对象的整个原型链for of只遍历当前对象不遍历原型链在遍历数组时for in会返回数组中所有可遍历的属性for of只返回数组下标对应的属性值for in适合遍历对象for of适合遍历数组二十二、对原型和原型链的理解当使用构造函数创建一个对象后这个对象内部会包含一个指针这个指针指向该构造函数的prototype属性对应的值在es5中这个指针就叫对象的原型当访问一个对象的属性时如果这个对象内部不存在这个属性就会去该对象的原型对象中找这个属性这个原型对象又会有自己的原型于是就这个一直找下去这个过程就称为原型链二十三、闭包闭包是指有权访问另一个函数作用域中变量的函数创建闭包的常见方式就是在一个函数内部创建另一个函数二十四、bind、call和apply共同点都可以改变this指针指向区别bind返回的是一个新的函数需要调用才可以执行call和apply可以直接执行call方法可以将实参在对象之后依次传递apply需要将实参存放在一个数组中统一传递二十五、异步编程的实现方式回调函数的方式缺点是多个回调函数嵌套的时候会造成回调函数地狱上下两层回调函数的代码耦合度较高不利于代码的维护promise的方式使用promise方式可以将嵌套的回调函数作为链式调用但有时会造成多个then链式调用造成代码语义不明确generator的方式它可以在函数执行过程中将函数执行权转移出去在函数外部还可以将执行权转移回来async函数的方式async函数是promise和generator实现的一个自动执行的语法糖它内部自带执行器二十六、对promise的理解promise是异步编程的一种解决方案它是一个对象可以获取异步编程的消息它的出现大大改变了异步编程的困境避免了地狱回调三个状态pending-进行中fulfilled-已成功rejected-已拒绝五个常用方法then、catch、race、finally、all二十七、async和awaitasync函数是generator函数的语法糖使用async关键字来表示在函数内部使用await来表示异步