js基础
学习javascript
HilariousDog
记录所学,帮助成长。Good luck!
展开
-
JavaScript闭包原理
前面作用域和作用域链的讲解,为我们理解闭包建立了基础 闭包的原理就是:子函数携带其上级作用域链(父函数的AO)返回到父函数的上级作用域并储存 例子: <script> function father(){ var num = 0; var add1 = function(){ console.log(++num); } return add1; } var adder = father(); adder(); //->1 adder(); //->2原创 2021-01-10 08:58:47 · 83 阅读 · 0 评论 -
JavaScript的预编译问题
在js引擎解释执行代码之前会有一个预编译的过程 了解预编译的过程,对于我们理解js代码的执行有很重要的意义,例如,为何函数的执行可以放在函数声明之前,而变量的使用放在变量定义之前则会报出undefined,而使用没有定义的变量又会直接报错。 下面来看一下其原理吧。 1.预编译的过程 对于全局代码,预编译分为三步: 一、检查var定义的变量,并存储于全局对象GO中,但此时并不赋值,GO(global object)是全局执行上下文,也就是window对象。 二、检查函数定义,并存储于GO,此时其只存储函数名于原创 2020-12-30 10:20:00 · 137 阅读 · 0 评论 -
JavaScript逻辑运算与逻辑类型转换
逻辑运算符介绍 在js中,||, &&, ! 分别代表逻辑或、逻辑与,逻辑非,下面看几个例子 <script> console.log(23 && 12 && 56) </script> 上例输出56,因为&&运算符遇到真就往后走,直到遇到假或到最后一个参数。 <script> console.log(12 > 13 || 0 || 5) </script> 上例输出5,因为||运算原创 2020-12-29 11:35:24 · 305 阅读 · 0 评论 -
javascript中各种数据类型比较及类型转换
Js中的数据类型可以分为原始值和引用值两大类,原始值存储在栈内存中,引用值存储在堆内存中,栈内存中会保存应用值的指针以供调用。 属于原始值的数据类型有:number, string, undefined, boolean 属于引用值的数据类型有:object(包括Array,Object对象和null等) 其中,number类型包括:数字、NaN。undefined类型只有undefined这个值。 在进行逻辑判断时,0, false, undefined, NaN, “”,null都代表逻辑假,可见各种.原创 2020-12-17 16:23:09 · 664 阅读 · 0 评论