javascript 关于语义化作用的理解

看代码实例1

      var a=1;
        function  m(a){ //此处为形参第一个传入函数的参数,既为arguments[0]
            alert(a);  //此处a为与形参绑定的
        }
        m(a);//1   此时的a为把变量a当作参数传入函数
.......................................................................................................
        var a=1;
        function  m(a){
            alert(a);
        }
        m();//undefind 因为没有传入参数 所以与函数内a绑定的为空,因此alert一个undefined

代码实例2

  var a=1;
        function  m(){ //函数创建时就将会将创建环境中的一些变量和对象保存在自己的作用域中,这也就是说函数的定义域取决于定义的位置,这就是语义化作用域,区别于c语言的块级作用域
            alert(a);
            alert(b);
        }
        function n(){
            var a=5;
            var b=3;//
            m();
        }
        n();// alert a为1,到b时报错 is not defined
        m();// alert a为1,到b时报错 is not defined

可见函数m在创建时,已经将自己绑定到创建环境的作用域中,此处既为全局作用域,当在函数n中调用时,它并不会向函数n的私有作用域内去寻找变量,所以函数n内定义

的a和b不会出现在函数m的作用域链中,结果如代码中注释所示。

代码实例3

      var a=1;
        function  m(a){ //此处的a和函数里面的a都为形参,与第一行声明的a变量没有任何关系,它们没有实例2中的绑定关系
            alert(a);
        }
        function n(){
            var a=5;//
            m(a);//将变量a传入函数m,当需要alert a时,就会将a的值alert,
        }
        n();//5
        m();//undefind

此处因该区分形参与变量的区别。

关于匿名函数的作用域更加复杂,等睡个好觉再起床整理一下。

时间: 2024-11-19 14:35:13

javascript 关于语义化作用的理解的相关文章

javascript中 的 + RegExp['\x241'] 怎么理解

\x24是十六进制转义符,16*2+4=36,ASCII码36代表的正是“$”符号(可以查ASCII码表),十六进制转义符的一般形式是'\xhh',h是0-9或A-F内的一个.$1是javascript全局对象 RegExp 的属性(可以查javascript API RegExp 对象),返回在模式匹配期间找到的.最近保存的部分+ 相当于 Number()函数(试了几种类型,两者效果一致,但不能确定). javascript正则表达式语法:\xn 匹配 n,其中 n 为十六进制转义值.十六进制

关于语义类标签新理解

初衷: 本篇是看过极客时间里winter老师的文章<04 | HTML语义:如何运用语义类标签来呈现Wiki网页?>写的. 由于叶叶从事的工作原因,单纯写静态页面并非自己常态化工作,更多的是实现其中业务逻辑,于是便忽略了HTML的学习,直到看到这篇文章后,才意识到自己懂得真心少. 内容: 什么是HTML语义化? 简单理解就是:用恰当的HTML标签.class类名,让机器和人快速理解网页内容. 2.HTML语义化的好处? ①益于开发和维护: ②增加可阅读性,使页面更加结构化: ③利于SEO搜索引

关于JavaScript定时器我的一些小理解

因为自己在平时工作中,有些功能需要用到定时器,但是定时器并不像我们表边上看到的那样,所以这周末我看看书查查资料,深入研究了一下JavaScript中的定时器,那么废话不多说,下面进入我们今天的正题. 大家都知道JavaScript是单线程的,所以不管是定时器还是用户的操作都是需要在线程队列中排队执行的. 一.定时器在执行线程队列里的分析 为了更好的理解我还是直接写个测试代码来看一下,这样分析起来更直观一些 1 <script type="text/javascript">

JavaScript——对this指针的新理解

一直以来对this的理解只在可以用,会用,却没有去深究其本质. 这次,借着<JavaScript The Good Parts>,作了一次深刻的理解. 下面我们一起来看看这个this吧. 在我们声明一个函数时,每个函数除了有定义时的parameters(形参),自身还会有额外的两个参数,一个是this,一个是arguments(实参).arguments就是函数实际接受到的参数,是一个类数组.arguments我只做个简略的介绍,重点我们放在this指针上. 在面向对象变成中,this十分重要

对JavaScript中变量类型的重新理解

<JavaScript启示录>这本书中提出:JavaScript中,对象为“王”(JavaScript里的几乎所有东西都是对象或者用起来像对象). 飞燕草对JavaScript最深刻的理解--也是这么久以来最有收获的一个认识:JavaScript的值有两种--原始值和对象(原始值的集合)组成.再直接一点,全部都可以理解为对象,原始值虽然不是对象,但是原始值拥有等效包装器对象,按照这么说的话,在JavaScript中真的可以说是对象为“王”. 一:原始值(或简单值) 1.原始值有5种:5(num

谈谈对Javascript构造函数和原型对象的理解

对象,是javascript中非常重要的一个梗,是否能透彻的理解它直接关系到你对整个javascript体系的基础理解,说白了,javascript就是一群对象在搅..(哔!). 常用的几种对象创建模式 使用new关键字创建最基础的对象创建方式,无非就是和其他多数语言一样说的一样:没对象,你new一个呀! var gf = new Object(); gf.name = "tangwei"; gf.bar = "c++"; gf.sayWhat = function

html/css/javascript的含义、作用及理解

HTML(HyperText Markup Language/超文本标记语言) 含义:HTML是一种用于创建网页的标准标记语言. 作用:页面内可以包含图片.链接,甚至音乐.程序等非文字元素. 理解:主要是用于建立网页的骨架,是结构层,可以理解成建房子的钢筋水泥. CSS(Cascading Style Sheets/层叠样式表) 含义:CSS是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言. 作用:静态地修饰网页, 能够对网页中元素

关于JavaScript中的对this的理解

关于this,一般来说谁调用了方法该方法的的this就指向谁,this指向当前调用的那个对象(我是最美的),回调函数里面的this都会指向(重) 如果存在多次调用,对象属性引用链只有上一层或者说最后一层在调用位置中起作用,如: function foo() {     console.log( this.a ) }  var obj2 = {      a: 42,     foo: foo }  var obj1 = {     a: 2,     obj2: obj2 }  obj1.obj

关于javascript中原型和原型链的理解

对于js中的原型以及原型链,笔者一直觉得有些迷惑,对于其中的概念是大致理解的,但是如果让笔者说出来就感觉比较难以清晰的表达出来,所以就在这里做一下总结,有疑问的时候再翻出来回顾一下 首先,我们看一段代码 function Person() { } var person = new Person(); console.log(person); console.log(Person); console.log(Object) console.log(person.prototype); consol