JS高级程序设计笔记(二)基本概念

严格模式:严格模式是为js定义了一种不同的解析与执行模型。要在整个脚本中启用严格模式,可以再顶部添加如下代码:

"use strict"; 

在函数内部的上方包含这条编译指示,也可以指定函数在严格模式下执行:

function doSomething(){
   "use strict";
    //函数体
}

数据类型:Undefined、Null、Boolean、Number和String.还有一种复杂的数据类型Object。

typeof操作符:undefined、boolean、string、number、object、function。

对未初始化和声明的变量执行typeof操作符都返回了undefined值。

ECMAScript 能够表示的最小数值保存在 Number.MIN_VALUE 中——在大多数浏览器中,这个值是 5e-324;能够表示的最大数值保存在Number.MAX_VALUE 中——在大多数浏览器中,这个值是 1.7976931348623157e+308。如果某次计算的结果得到了一个超出 JavaScript 数值范围的值,那么这个数值将被自动转换成特殊的 Infinity 值。具体来说,如果这个数值是负数,则会被转换成-Infinity(负无穷),如果这个数值是正数,则会被转换成 Infinity(正无穷)。

要想确定一个数值是不是有穷的(换句话说,是不是位于最小和最大的数值之间),可以使用 isFinite()函数。这个函数在参数位于最小与最大数值之间时会返回 true,如下面的例子所示:

var result = Number.MAX_VALUE + Number.MAX_VALUE; 
alert(isFinite(result)); //false 

NaN:即非数值是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况。

NaN 本身有两个非同寻常的特点。首先,任何涉及 NaN 的操作(例如 NaN/10)都会返回 NaN,这
个特点在多步计算中有可能导致问题。其次,NaN 与任何值都不相等,包括 NaN 本身。例如,下面的代
码会返回 false:

alert(NaN == NaN); //false 
针对 NaN 的这两个特点,ECMAScript 定义了 isNaN()函数。这个函数接受一个参数,该参数可以
是任何类型,而函数会帮我们确定这个参数是否“不是数值”。isNaN()在接收到一个值之后,会尝试
将这个值转换为数值。某些不是数值的值会直接转换为数值,例如字符串"10"或 Boolean 值。而任何
不能被转换为数值的值都会导致这个函数返回 true。

Object:对象

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

  • constructor:保存着用于创建当前对象的函数。
  • hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中(而不是在实例的原型中)是否存在。其中作为参数的属性名(propertyName)必须以字符串形式指定(例如:o.hasOwnProperty("name")).
  • toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应。
  • toString():返回对象的字符串表示。
  • valueOf():返回对象的字符串、数值或布尔表示。通常与toString()方法的返回值相同。

for-in语句

for-in语句是一种精确的迭代语句,可以用来枚举对象的属性。

for (property in expression) statement

label语句

使用label语句可以在代码中添加标签,以便将来使用。以下是label语句的语法:

label :statement 

start:for(var i= 0;i<count ;i++)

{

      alert(i);

}

这个例子中定义的start标签可以再将来由break或continue语句引用。加标签的语句一般对要与for语句等循环语句配合使用。

with语句

with语句的作用是将代码的作用域设置到一个特定的对象中。with语句的语法如下:

with (expression)statement;

定义with语句的目的主要是为了简化多次编写同一个对象的工作,如下面的例子所示:

var qs = location.search.substring(1);
var hostName = location.hostname;
var url = location.href;

上面几行代码都包含location对象。如果使用with语句,可以把上面的代码改写成如下所示

with(location){
   var qs = search.substring(1);
   var hostName = hostname;
   var url = href;
}

猜你喜欢

转载自blog.csdn.net/baidu_29474379/article/details/84339815