javascript作用域学习笔记

作者: 嗯哼26 | 来源:发表于2016-11-19 21:52 被阅读8次

a.作用域属性是在定义函数的时候决定的,不是在调用函数的时候决定。//JavaScript中的函数运行在它们被定义的作用域里,而不是它们被执行的作用域里

eg.

var name="lw";

function alert_1(){

  alert(name);

}

function alert_2(){

 var name="zgm";

 alert_1();

}

alert_2();//结果:lw

b.js的预编译:

1.在一段js代码执行之前,会预先处理var关键字和function定义式(函数表达式和函数定义式),对于局部变量,变量的值会在真正执行的时候计算。

2.函数定义注意:函数定义式和函数表达式的不同, 对于函数定义式, 会将函数定义提前.而函数表达式, 会在执行过程中才计算。

eg.

alert(typeof hello);//结果:function

alert(typeof world);//结果:undefined

function hello(){//函数定义式

   alert("hello");

}

var world=function(){//函数表达式

  alert("world");

}

alert(typeof world);//结果:function

c.js预编译是以段为处理单元

eg.

<script>

alert(typeof hello); //结果:undefined

</script>

<script>

function hello() {

 alert('hello world');

}

</script>

d.作用域链代码优化在标识符解析的时候,查找全局变量是最慢的,所以尽量使用局部变量。

eg.

function changeColor(){  

  var doc=document;  

doc.getElementById("NM").onclick=function(){                       doc.getElementById("AL").style.backgroundColor="red";  

  };

}

全局变量document的被调用两次,查找该变量必须遍历整个作用域链,耗费时间,可以把它存储到局部变量里再使用。

相关文章

  • JavaScript作用域学习笔记

    @(JS技巧)[JavaScript, 作用域] JavaScript作用域学习笔记 概念: 作用域就是变量与函数...

  • javascript 作用域

    javascript 作用域 本文是作者的学习笔记、主要是给大家说说作用域在javascript中是怎么一回事、有...

  • JavaScript 学习笔记——作用域

    本人水平有限,如有叙述不当或者错误之处,望各位指出,十分感谢! 作用域 我们要知道,在 JavaScript 中,...

  • javascript作用域学习笔记

    a.作用域属性是在定义函数的时候决定的,不是在调用函数的时候决定。//JavaScript中的函数运行在它们被定义...

  • JavaScript作用域学习笔记

    作用域链 作用域的原理: ”JavaScript中的函数运行在它们被定义的作用域里,而不是它们被执行的作用域里.”...

  • JavaScript作用域学习笔记

    总结来说很简单: 函数运行在定义时的作用域中 变量查找会从当前作用域开始查找,找不到则到下一层作用域查找,直到找到...

  • JavaScript作用域学习笔记

    作用域是变量与函数的可访问范围,作用域控制着变量与函数的可见性和生命周期。变量的作用域有两种:全局作用域和局部作用...

  • 07-JavaScript作用域和预解析

    JavaScript作用域 JavaScript中有全局作用域和局部作用域 相同作用域内不能有同名的变量和函数 不...

  • JavaScript 作用域和作用域链

    JavaScript 作用域 作用域就是变量与函数的可访问范围。在JavaScript中,变量的作用域有全局作用域...

  • 2019-11-11-本周学习周报

    学习总览 JavaScript 函数作用域、块级作用域 变量提升、函数提升 CSS 新增属性transition ...

网友评论

    本文标题:javascript作用域学习笔记

    本文链接:https://www.haomeiwen.com/subject/feyepttx.html