JavaScript高级程序设计笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript高级程序设计笔记相关的知识,希望对你有一定的参考价值。

1.1 javascript简史
 
<script>
 
  • async/defer可以控制js加载顺序
  • 把js文件放在页面底部,加快页面打开速度
 
3 基本概念
 
  • 语法
  • 数据类型
  • 流控制语句
  • 理解函数
 
3.4 数据类型
 
  • ECMAScript中定义了六种数据类型:Underfined、Null、Boolean、Number、String、Object
  • 使用typeof关键字来检测类型
 
技术分享
技术分享
 
 
//Boolean()转换
var bool1 = Boolean(true);
var bool2 = Boolean("");
var bool3 = Boolean(0);
var bool4 = Boolean(null);
var bool5 = Boolean(bool5);
alert(bool1+" "+bool2+" "+bool3+" "+bool4+" "+bool5);
output:true false false false false 
 
 
 
Number:范围从5e-324 到 1.79e+308,超出范围则成为Infinity
 
  • NaN(not a number) 表示一个本来要返回数值的操作数未返回数值的情况。在其他语言中,除零会报错,但在ECMAScript中,除零会返回NaN,程序继续执行。
 
//Number()转换
var num1 = Number("Hello world!");
var num2 = Number("");
var num3 = Number("000011");
var num4 = Number(true);
alert(num1+" "+num2+" "+num3+" "+num4);
output:NaN 0 11 1
 
 
 
 
 
4.3 执行环境及作用域
 
每个函数都有自己的执行环境。代码在一个环境中执行的时候,会创建变量对象的一个作用域链。
作用域链中包含自己的变量对象和全局环境的变量对象。
 
技术分享
技术分享
 
 
       js中没有块级作用域,所以
技术分享
 
技术分享
      所以js作用域是以函数而不是花括号为界限的
 
 
7.2 闭包
 
技术分享
 
技术分享
技术分享
                       技术分享技术分享
 
技术分享
 
技术分享
技术分享
技术分享
 
所以理解闭包首先要了解作用域链,因为闭包的作用域链中包含了外部函数的变量对象。
 
7.2.1 闭包与变量
 
闭包只能取得包含函数中任何一个变量的最后一个值。举个例子:
 
技术分享
技术分享
 
技术分享
技术分享
 
7.2.2 this对象
 
没看懂。
 
 
14 表单脚本
 
14.1.3 表单字段
 
这里代码测试跟书上不一样
 
        window.onload = function(){
            var form =  document.getElementById("form1");
            var colorFields = form.elements["color"];
            alert(colorFields.length);

            var firstField = colorFields[0];
            var firstFormField = form.elements[0];

            alert(firstField === firstFormField); // false ,书上是true
        }

 

 
 

以上是关于JavaScript高级程序设计笔记的主要内容,如果未能解决你的问题,请参考以下文章

js-JavaScript高级程序设计学习笔记19

JavaScript高级程序设计(第三版)学习笔记222425章

JavaScript笔记(自用)——02语法

JavaScript笔记(自用)——02语法

JavaScript高级程序设计(第三版)学习笔记

js程序设计01——基本概念