发布于 

变量与数据类型

ECMAScript的变量是松散类型:可以用来保存任何类型的数据 var let const

1
2
3
var message = 'hello word' // 右边赋值到左边  var 声明语句声明一个变量
let message = 'hello word' // let声明一个块级作用域的本地变量
const messgae = 'hello word' // 常量是块级作用域,很像使用 let 语句定义的变量。常量的值不能通过重新赋值来改变,并且不能重新声明。

注:在严格模式下,不能定义名为 eval 或 arguments 的变量,否则会导致语法错误

数据类型:

5中简单数据类型(基本数据类型):一种复杂数据类型

UndefinedNullBooleanNumberString
未定义(一个值)空对象指针(一个值)布尔值数值字符串(不可变)
true与false由双 引号(")或单引号(')表示(左右引号必须匹配*)
如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为 null 而不是其他值true 不一定等于 1,而 false 也不一定等于 0十进制表示外,整数还可以通过八进制(以 8 为基数)或十六进制(以 16 为基数)的字面值 来表示。由零或多个 16位Unicode字符组成的字符序列
八进制字面值的第一位必须是零(0),然后是八进制数字序列(0~7)。如果字面值中的 数值超出了范围,那么前导零将被忽略,后面的数值将被当作十进制数值解析。(八进制字面量在严格模式下是无效的,会导致支持的 JavaScript引擎抛出错误。)*
Object对象可以通过执行 new 操作符后跟要创建 的对象类型的名称来创建。
一组数据和功能的集合即在 ECMAScript中, Object 类型是所有它的实例的基础。
复杂数据类型“Object 类型所具有的任何属性和方法也同样存在于更具体的对象中。”
构造函数(constructor) 就是 Object()

Object 本质上是由一组无序的名值对组成的

typeof操作符:检测给定的数据类型[它是一个操作符而不是一个函数]

PS:typeof 操作符会返回一些令人迷惑但技术上却正确的值。比如,调用 typeof null 会返回"object",因为特殊值 null 被认为是一个空的对象引用

转换:

数值转换:

3个函数可以把非数值转换为数值:Number()、parseInt()和 parseFloat()。第一个函数, 即转型函数 Number()可以用于任何数据类型,而另两个函数则专门用于把字符串转换成数值。

转换为字符串:

toString()方法

PS:null 和 undefined 没有 toString()方法


本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。