javascript中让你迷惑的知识点集合


此文章主要是记录javascript中那些难以理解、迷惑、怪癖和易忽略的知识点。方便以后整理和学习。

typeof篇

  • typeof null返回的结果是object。
  • typeof Function返回的结果是function,不是object。

Undefined篇

  • var message; alert(message); alert(age)声明未初始化的变量会被赋值undefined,没有声明而直接引用,将导致脚本错误。
  • 对未初始化的变量执行typeof操作将返回undefined值,而对未声明的变量执行typeof操作同样返回undefined值。

Null篇

  • null表示空对象的引用,所以typeof null返回的值是object。
  • 由于undefined派生于null,因此执行undefined == null是成立的。

Boolean篇

  • 转型函数Boolean()可以将一个变量转换成布尔值,但是!!变量名可以更快的获取布尔值。

Number篇

  • 判断一个数值是否是正负无穷,可以通过isFinite()函数判断。
  • NaN表示非数值,NaN与任何值都不相等,包括NaN本身。例如alert(NaN == NaN)将返回false。
  • 可以通过isNaN()函数来判断一个变量是否“不是数值”。

String篇

  • EcMAScript中的字符串是不可变的,字符串一旦创建,他们的值就不能改变。要改变某个变量的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充。
  • 数值、布尔值、对象和字符串都有toString方法,但是null和undefined没有这个方法。
  • String()能够将任何类型的值转换为字符串,包括null和undefined。

操作符篇

  • 逻辑非操作符可以将一个值转换为与其对应的布尔值,而同时使用两个逻辑非操作符,实际上就会模拟Boolean()转型函数的行为。

arguments篇

  • arguments与数组类似,但是它却是一个对象的引用。
  • arguments.callee用来引用当前的函数,用于处理递归非常使用。

7 responses on “javascript中让你迷惑的知识点集合

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>