首页 > 代码库 > JavaScript高级程序设计(第三版)学习笔记(2)

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

第三章 基本概念

1、严格模式:对ES3中不确定的行为作出处理,对某些不安全的操作抛出错误。要在整个脚本中启用严格模式,可以在顶部加上"use strict";要在函数中启用严格模式,可以在函数顶部加上"use strict"。

2、定义变量:有var=>局部变量;省略var=>全局变量。在严格模式下不能定义名为eval或arguments的变量,否则会导致语法错误。

3、typeof操作符的返回值有6个:undefined、boolean、string、number、object、function。

4、检测数组不能用typeof(返回object),三种方式:

  • ary instance of Array
  • 原型链
  • Object.prototype.toString.call(ary)

5、undefined(值:undefined),未初始化的变量值为undefined; null(值:null)。

6、对于未声明的变量只能执行唯一操作 typeof,且返回值为 undefined;对未初始化的变量执行 typeof 操作返回值同样为 undefined。

7、Number类型:用IEEE754格式表示。

  • Infinity: 无穷,超出JS数值范围。
  • NaN (Not a Number):(1) 任何数值除以非数值返回NaN; (2) NaN==NaN => false; (3)isNaN(a) => true: a 不是数值(会先尝试将a转换成数值)。

8、Number()

  • Boolean => 0(false) 或 1(true)
  • 数值=>数值
  • null=>null
  • undefined=>NaN
  • string: (1)只包含数字(包含+ -号),转为十进制(忽略前导零);(2)有效的浮点格式(只有一个小数点),转为浮点值(忽略前导零);(3)有效的十六进制格式,转为十进制;(4)空串,转为0;(5)除此以外,转为NaN
  • object: 先调用valueOf()方法,然后依照上式规则转换,若结果为NaN,则调用对象的toString()方法,再按照上述规则进行转换。

 9、parseInt():string=>整数

  • 找到第一个非空格字符串
  • 如果第一字符不是数字或者‘-‘=>NaN
  • 如果第一个字符是数字字符或者‘-‘, 继续解析,知道遇到第一个非数字字符。
  • parseInt("")=>NaN
  • 第二个参数表示转换的基数

10、parseFloat()与parseInt()类似,第一个小数点有效,其他均无效。

11、 String类型

  • 字符串一旦被创建,他们的值就不能改变(先销毁再填充)
  • 转换字符串的三种方式:(1) a.toString(); (2) String(a); (3) a+""
  • toString(): (1) 参数:传递基数;(2)undefined和null没有toString()方法
  • String(): (1) 如果参数有toString()方法,则调用该方法(无参数)并返回相应的结果;(2)如果参数是null=>null; (3) 如果参数是undefined=>undefined

12、Object的每个实例都具有下列属性和方法

  • constructor:保存着用于创建当前对象的函数。
  • hasOwnProperty(propertyName): 用于检测给定的属性在当前对象实例中(不是实例的原型中)是否存在,其中propertyName必须是字符串。
  • isPrototypeOf(object): 用于检查传入的对象是否是当前对象的原型。
  • properIsEnumerable(propertyName): 用于检查给定的属性是否能够使用for-in语句来枚举,其中propertyName必须是字符串。
  • toLocalString(): 返回对象与执行环境有关的字符串表示。
  • toString(): 返回对象的字符串表示。
  • valueOf(): 返回对象的字符串、数值或布尔值表示(通常与toString()方法的返回值相同)。

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