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);
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);
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高级程序设计笔记的主要内容,如果未能解决你的问题,请参考以下文章