- 博客(9)
- 收藏
- 关注
原创 伪数组转成真数组的5种方法
伪数组转成真数组的5种方法1.for循环第一种就是使用最基础的for循环,这个应该有一点基础的都看得懂。 const divs = document.querySelectorAll('div'); let arr = []; console.log(divs instanceof Array); for (let i = 0; i < divs.length;i++) { arr.push(divs[i]); } console.log(arr inst
2021-06-29 16:09:17
6248
1
原创 JavaScript函数声明与函数表达的区别
JavaScript函数声明与函数表达的区别在JavaScript中有两种声明函数的方式:函数声明式、函数表达式。函数声明式function 函数名(){函数体};函数声明式会变量提升,意味着函数声明的函数会出现在程序顶部,即在函数声明的前后都可以调用函数。console.log(print() ? "调用成功" : "调用失败"); //调用成功function print() { return true;}console.log(print() ? "调用成功" : "调用失败"
2021-02-07 16:46:46
119
原创 JavaScript立即执行函数
立即执行函数 立即执行函数的主要作用就是创建一个立即执行的拥有独立作用域函数,这样可以避免变量污染。立即执行函数写法(function (num) { console.log(num);}(1));//1 (function(形参){函数体;}(传值));(function (num) { console.log(num);})(2);//2 (function(形参){函数体;})(传值);! function (num) { console.log(num);
2021-02-07 16:02:08
158
原创 JavaScript词法作用域
词法作用域 在编程语言中,作用域存在两种工作模式,一种是动态作用域,一种是词法作用域(静态作用域)。在JavaScript使用的就是词法作用域。什么是词法作用域 词法作用域,顾名思义,就是定义在词法阶段的作用域。用通俗一点的话讲,就是函数的作用域在函数定义的时候就已经决定了。函数作用域原理(个人理解,有错误欢迎各位大佬斧正) 每一个JavaScript函数都是Function对象的一个实例,在Function对象中有一个仅供JavaScript引擎存取的内部属性[[ scope]],翻
2021-02-07 14:54:07
165
原创 JavaScript闭包
闭包JavaScript闭包的本质:基于词法作用域和将函数按值传递。解释: 函数在创建时会记住并访问所在的词法作用域,并且保持对词法作用域的引用,就会形成闭包。 由于外部函数无法直接访问内部函数,所以将内部函数return,以间接方式访问此词法作用域中的变量。var num = 100; //全局作用域function sum() { var num = 0; //函数全局作用域 function print() { num += 2; //函数内部作
2021-02-06 23:01:05
65
原创 JavaScript函数赋值变量
函数赋值变量以函数形式返回function print(val) { console.log(`姓名是:${val}`);}var fn = print;//将函数赋值给fnfn('angus');//姓名是:angus以返回值形式将函数返回的值赋值给fn,如果函数没有返回值,但又接受了,此时会返回undefined。有返回值:function print(val) { return `姓名是:${val}`;}var fn = print('angus');con
2021-02-06 13:50:32
3687
原创 高性能JavaScript(三)数据存取之闭包与作用域
闭包、作用域与内存如果在阅读下面文章中, 对作用域、作用域链、活动对象以及执行速度产生的影响有疑问的可阅读:高性能JavaScript(二)数据存取之作用域链闭包是JavaScript最强大的特性之一,它允许访问局部作用域之外的数据。然而,使用闭包可能导致性能问题。闭包与内存function sum() { var num = 0; function print() { num += 2; console.log(num);
2021-02-06 11:47:30
87
原创 高性能JavaScript(二)数据存取之作用域链
数据存取 JavaScript与其他编程语言相同,数据的存取位置会很大程度的影响其读取速度。JavaScript中有下面四种基本的数据存储位置。字面量: 字面量只代表自身,不存储在特定位置。JavaScript中的字面量有:字符串、数字、布尔值、对象、数组、函数、正则表达式,以及特殊的null值和undefined值。本地变量:开发人员使用关键字var定义的数据存储单元。数组元素:存储在JavaScript数组对象内部,以数字作为索引。对象成员:存储在JavaScript对象内部,
2021-01-30 21:47:43
123
原创 高性能JavaScript(一)加载与执行
脚本阻塞JavaScript语言是单线程的,意味着同一时间只能做一件事。 其主要原因是因为JavaScript作为浏览器脚本语言,它的主要功能是与使用者互动以及操作DOM元素。如果JavaScript采用多线程就会出现一个很严重的问题,假设有两个线程同时运行,一个线程在删除DOM元素,而另一个线程在添加DOM元素,此时浏览器该以哪一个线程为主? 这就意味着每当有< script>标签出现时,就会让页面等待脚本文件的加载和执行,无论< script>是内嵌或外链形式,
2021-01-28 22:29:21
210
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人