基本概念

一、严格模式

  ECMAScript 5引入了严格模式(strict mode)的概念。严格模式是为 JavaScript定义了一种不同的 解析与执行模型。在严格模式下,ECMAScript 3中的一些不确定的行为将得到处理,而且对某些不安全 的操作也会抛出错误。要在整个脚本中启用严格模式,可以在顶部添加如下代码:

  "use strict";

  ECMA-262第 5版对 eval 和 arguments 施加了限制。在严格模式下,这两个名字也不能作为标识符或属性名,否则会抛出错误。 

二、变量

  使用var定义变量,可以定义任何类型的值。如果未经赋值,会保存一个特殊的值--undefined。注意:虽然var可以定义任何类型的值,但是不推荐定义某种类型后又赋值为另一种类型。用 var 操作符定义的变量将成为定义该变量的作用域中的局部变量。也就是说, 如果在函数中使用 var 定义一个变量,那么这个变量在函数退出后就会被销毁。

 

 

 三、数据类型

  ECMAScript中有 5种简单数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number 和String。还有1种复杂数据类型——Object,Object 本质上是由一组无序的名值对组成的

  typeof操作符:用于检测变量的数据类型。

   "undefined"——如果这个值未定义;

   "boolean"——如果这个值是布尔值;

   "string"——如果这个值是字符串;

   "number"——如果这个值是数值;

   "object"——如果这个值是对象或 null;

   "function"——如果这个值是函数。

   注:typeof根据每个变量的低三位机器码判断变量的数据类型

 四、数值转换

  Number()函数的转换规则如下。

   如果是 Boolean 值,true 和 false 将分别被转换为 1和 0。

   如果是数字值,只是简单的传入和返回。

   如果是 null 值,返回 0。

   如果是 undefined,返回 NaN。

   如果是字符串,遵循下列规则:

     如果字符串中只包含数字(包括前面带正号或负号的情况),则将其转换为十进制数值,即"1"会变成1,"123"会变成 123,而"011"会变成11(注意:前导的零被忽略了);

     如果字符串中包含有效的浮点格式,如"1.1",则将其转换为对应的浮点数值(同样,也会忽 略前导零);

     如果字符串中包含有效的十六进制格式,例如"0xf",则将其转换为相同大小的十进制整数值;

     如果字符串是空的(不包含任何字符),则将其转换为 0;

     如果字符串中包含除上述格式之外的字符,则将其转换为 NaN。

   如果是对象,则调用对象的 valueOf()方法,然后依照前面的规则转换返回的值。如果转换的结果是 NaN,则调用对象的 toString()方法,然后再次依照前面的规则转换返回的字符 串值。 

  

 

posted @ 2019-12-09 17:17  雪が降る  阅读(93)  评论(0编辑  收藏  举报