`

js笔记

阅读更多


JavaScript code
?
1
2
3
4
if (!("a" in window)) {
    var a = 1;
}
alert (a);


JavaScript code
?
1
2
3
4
5
var a = 1,
    b = function a (x) {
        x && a (--x);
    };
alert (a);


JavaScript code
?
1
2
3
4
5
function a (x) {
    return x * 2;
}
var a;
alert (a);


JavaScript code?
1
2
3
4
5
function b (x, y, a) {
    arguments[2] = 10;
    alert (a);
}
b(1, 2, 3);


JavaScript code?
1
2
3
4
function a () {
    alert (this);
}
a.call (null);

 

第一题:if (!("a" in window)) {
    var a = 1;
}
alert (a);
分析:首先会解析所有函数,其次是var声明的变量,但是不会赋值(明白?)。因为javascript没有块的概念。像for(var i in array)这里的i依然是全局变量。因此,这几行的代码执行顺序是:1.var a;//声明一个变量,但是不会赋值
    2.if语句,全局变量相当于window的属性,所以"a" in window为真,取反为假。故不会执行大括号里面的语句。
    3.alert(a);//undefined

第二题:
     var a = 1,
     b = function a (x) {
        x && a (--x);
    };
    alert (a);
分析:我们可以用多个逗号将变量分开定义,而是用一个var。函数表达式类似于局部变量,不会被全局作用域中访问到。
执行顺序:
    1.声明两个变量var a,b;并给他们赋值a=1,b=function a(){...};这里的function a是局部变量,外部无法访问到。因此全局a还是1.
    2.alert(a);//1

第三题:function a (x) {
           return x * 2;
        }
       var a;
       alert (a);
分析:js永远是先解析声明式函数,再解析变量。
执行顺序:
     1.解析函数a;
     2.声明变量var a;因为a此时没有被赋值,所以它还是指向原来的值。即function a;
     3.alert(a);//不言而预。

第四题:function b (x, y, a) {
          arguments[2] = 10;
          alert (a);
       }
       b(1, 2, 3);
分析:在函数内部可以引用一个对象,它是arguments类似数组,但不是数组。它代表了函数实际接收参数的集合。可以通过下标对相应参数进行访问。如果修改此对象某些属性,如arguments[index],则被传进来的第index(如果有的话,下标从0开始)变量的值也会被修改。
执行顺序:1.声明一个函数b;
          2.执行函数b(1,2,3);因为这里arguments[2]与变量a引用的是一个值,所以当arguments[2]改变时,a也随之改变。

第五题:function a () {
          alert (this);
       }
a.call (null);
分析:call方法接受多个参数,其作用是借用别人的方法当作自己的方法。这样能保证执行的时候this能够指向自己。call方法的第二个参数到最后一个参数是传给借用过来函数的。第一个参数是借用的对象,如果这个对象为空,那么将会作为全局window对象调用。即函数中的this指向window。

分享到:
评论

相关推荐

    狂神说系列 JavaScript笔记

    【狂神说系列 JavaScript笔记】是一份全面且深入的JavaScript学习资源,旨在帮助开发者和初学者深入理解这门广泛应用于Web开发的脚本语言。这份笔记涵盖了JavaScript的基础语法、核心概念以及高级特性,旨在构建一个...

    javascript笔记 javascript笔记

    - **解释:** 这段代码会引入名为`java.js`的外部JavaScript文件。例如,在`java.js`文件中可以写入: ```javascript document.write("Hello World!"); ``` ### 组合使用JavaScript和HTML 通过组合使用...

    李立超JavaScript基础篇笔记

    JavaScript,简称JS,是由Brendan Eich在1995年创造的一种高级编程语言,最初目的是为了增强网页的交互性,特别是在前端进行表单验证。JavaScript不是Java的子集,两者之间没有直接关联。JS起初名为LiveScript,但在...

    传智播客JS笔记

    "传智播客JS笔记"提供了一套全面且易于理解的学习资源,特别适合初学者掌握JavaScript的基础和核心概念。以下是对笔记中可能包含的重要知识点的详细解释: 1. **变量与数据类型**:JavaScript 支持动态数据类型,这...

    html+css+javascript笔记完整版

    "html+css+javascript笔记完整版"是一份全面的前端学习资源,涵盖了从基础到进阶的HTML、CSS和JavaScript知识。通过深入学习,你可以掌握创建交互式、响应式网页所需的所有技能,并为进一步探索前端开发的广阔领域...

    黑马JavaScript笔记二.md

    黑马JavaScript笔记二.md

    css+html+js笔记

    在提供的压缩包文件中,"JavaScript笔记完整版.doc"可能涵盖了JavaScript的基本语法、DOM操作、事件处理、Ajax请求等内容;"html笔记.docx"可能讲解了HTML标签的使用、HTML5新特性、语义化标签等;"div+css笔记.docx...

    js笔记.md

    js笔记.md

    JavaScript_Demo,文章《JavaScript笔记》配套代码

    这篇文章《JavaScript笔记》的配套代码提供了丰富的实例,旨在帮助读者深入理解和掌握JavaScript的基本概念、语法以及应用技巧。 首先,我们来看看“JS笔记”部分。在学习JavaScript时,理解变量的声明、数据类型...

    韩顺平javascript笔记(最全整理 dom编程 oop 基础语法)

    韩顺平老师的JavaScript笔记全面涵盖了基础语法、面向对象编程以及DOM编程,这些都是学习JavaScript时至关重要的知识点。 首先,基础语法是JavaScript学习的基石。包括变量声明(var、let、const)、数据类型(如...

    javascript笔记

    javascript入门笔记包括javascript简介、javascript语法、javascript流程控制、函数、数组等

    html-css-js笔记

    这是关于html-css-js 笔记,希望可以对初学者有一些帮助!

    韩顺平Javascript笔记完整版.pdf

    韩顺平Javascript笔记完整版.pdf ,配合视频看效果比较好

    js 笔记 javascript 学习笔记

    本学习笔记将深入探讨JavaScript的核心概念,包括变量、数据类型、操作符、控制流程、函数、对象、数组、原型链、闭包等,并结合实际示例,如my.js、order.js、login.js等文件,来讲解其在实际项目中的应用。...

    javascript 笔记 适合初学者 jquery chm 资料

    这份"javascript笔记"可能是作者根据自己的学习和实践整理而成,对初学者来说是非常宝贵的资源。笔记中可能涵盖了变量声明、数据类型(如字符串、数字、布尔值、对象、数组等)、运算符、流程控制(如条件语句和循环...

    creator nodejs js笔记

    这篇笔记主要聚焦在CocosCreator游戏开发环境中,如何结合Node.js和JavaScript进行高效能的应用程序开发。Node.js是一个开放源代码、跨平台的JavaScript运行环境,它允许开发者在服务器端运行JavaScript代码,极大地...

    韩顺平 javascript 笔记 js面向对象 笔记 韩顺平 完整版

    在韩顺平的JavaScript笔记中,他深入讲解了JS面向对象编程的各个方面,包括变量的作用域、对象引用、this关键字的使用以及对象的方法。 首先,变量的作用域在JavaScript中是一个关键概念。带var和不带var声明的变量...

    js笔记js笔记js笔记js笔记

    js笔记js笔记js笔记js笔记

    黑马JavaScript笔记一.md

    黑马JavaScript笔记一.md

Global site tag (gtag.js) - Google Analytics