JavaScript
JavaScript语法
Lmx!
学而不思则罔,思而不学则殆。
展开
-
JavaScript的执行过程
JavaScript的执行过程 执行上下文栈(Execution Context Stack,简称ECS) js执行的调用栈,当js代码执行时,这段代码会入栈,执行完成会出栈。 全局执行上下文(Global Execution Context,简称GEC) js运行时创建的执行上下文 函数执行上下文(Functional Execution Context,简称FEC) 在函数执行时创建的执行上下文,包含函数的AO对象、作用域链、绑定的this [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直原创 2022-03-17 13:38:48 · 320 阅读 · 0 评论 -
js引擎执行js代码的过程
js引擎执行js代码的过程 html解析 浏览器下载网页时,浏览器内核解析html。当遇到script标签时,下载js代码并将js代码以流的形式传递给js引擎让js引擎进行js代码的解析。 语义语法分析 首先js引擎会对js代码进行扫描,进行语义分析和语法分析,如果语义或语法出现问题则直接报错停止解析。当通过语义和语法分析后,对js进行编译和预编译; 编译和预编译 编译时会将变量和函数加入到全局对象(Global Object)中。但此时的变量并没有赋值,变量赋值操作是发生在运行期间的,函数则会创建一个函数原创 2022-03-16 10:12:28 · 559 阅读 · 0 评论 -
JavaScript严格模式
JavaScript严格模式 为什么使用严格模式 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为; 消除代码运行的一些不安全之处,保证代码运行的安全; 提高编译器效率,增加运行速度; 严格模式的限制 不能使用未声明的变量 不允许删除变量或对象 不允许变量重名 不允许使用八进制 不允许使用转义字符 不允许对只读属性赋值 不允许对一个使用getter方法读取的属性进行赋值 变量名不能使用 “eval” 字符串: 不允许使用以下语句:with (Math){x = cos(2)}原创 2021-10-19 14:02:37 · 119 阅读 · 0 评论 -
async和await使用
async和await使用 这是es8中新增的关键字,用来使异步操作变成同步 async修饰函数,await修改表达式(一般后面为一个Promise对象) async函数声明它是一个异步函数,await只能在async函数中使用。 await的作用是等待异步操作结束直接拿到异步操作成功的结果,异常可以使用try……catch来进行捕获。 await后面一般跟Promise对象,如果不是Promise则将这个表达式的结果作为成功的Promise返回,是Promise则返回成功的结果 ..原创 2021-10-18 14:13:36 · 111 阅读 · 0 评论 -
JS数组高阶函数
JS数组高阶函数 map函数(映射函数) 此函数的作用是遍历数组或对象中每一个元素,对每一个元素进行统一的处理。 map函数接受一个参数。参数的类型为function,返回值是一个数组。函数决定了对每个元素进行何种操作,函数有一个参数代表数组中的每一个元素 let a = [1,2,3,4,5] console.log(a.map(item => item * item))//[1,4,9,16,25] console.log(a.map(function (item){ return item原创 2021-07-12 12:14:53 · 137 阅读 · 0 评论 -
JavaScript中的call,apply,bind的区别
JavaScript中的call,apply,bind的区别 共性 call,apply,bind都是为显示改变this的指向 不同点 call和apply的不同主要在参数上。 call和apply的第一个参数都是要让this指向的对象。 call的第二个及以后的所有参数是被改变this指向的函数的参数列表。 apply的第二参数是一个数组,数组中的内容是函数的参数列表。 function foo(a, b) { console.log(this) console.log(a + b) } l原创 2021-10-15 11:08:32 · 75 阅读 · 0 评论