JavaScript共有7种数据类型:number,string,boolean,symbol,undefined,null,object

1. number

  • 整数和浮点数
    JavaScript 内部,所有数字都是以64位浮点数形式储存,即使整数也是如此。所以,1与1.0是相同的,是同一个数。
  • Math.pow()
    Math.pow()可以用来计算基数的指数次幂
//求2的3次方
Math.pow(2,3)    //8


  • 科学计数法
    数值也可以采用科学计数法表示
123e3       //123000



  • 数值的进制
    JavaScript对整数提供四种进制的表示方式:十进制、十六进制、八进制、二进制
    十进制:没有前导0的数值。
    八进制:有前缀0o或0O的数值,或者有前导0、且只用到0-7的八个阿拉伯数字的数值。(后来 ES5 添加了 0o11 语法)
    十六进制:有前缀0x或0X的数值。
    二进制:有前缀0b或0B的数值。

2.string

  • 多行字符串
    可以在每一行的尾部使用反斜杠
var longString = 'Long 
long 
long 
string';

longString
// "Long long long string"



或者使用连接运算符+



var longString = 'Long '
  + 'long '
  + 'long '
  + 'string';

longString
// "Long long long string"



  • 字符集
    JavaScript使用Unicode字符集,JavaScript引擎内部,所有字符都用Unicode表示
  • Base64转码
    所谓 Base64 就是一种编码方法,可以将任意值转成 0~9、A~Z、a-z、+和/这64个字符组成的可打印字符。使用它的主要目的,不是为了加密,而是为了不出现特殊字符,简化程序的处理。btoa():任意值转为 Base64 编码atob():Base64 编码转为原来的值
var string = 'Hello World!';
btoa(string) // "SGVsbG8gV29ybGQh"
atob('SGVsbG8gV29ybGQh') // "Hello World!"



3.boolean

  • boolean的值只有两个:true和falsea && b 在 a 和 b 都为 true 时,取值为 true;否则为 falsea || b 在 a 和 b 都为 false 时,取值为 false;否则为 true

4.undefined和null

nullundefined都可以表示“没有”,含义非常相似。



undefined == null

// true



  • (规范)如果一个变量没有被赋值,那么这个变量的值就是 undefiend
  • (习俗)如果你想表示一个还没赋值的对象,就用 null。如果你想表示一个还没赋值的字符串/数字/布尔/symbol,就用 undefined(但是实际上你直接 var xxx 一下就行了,不用写 var xxx = undefined)

5.object

  • object 就是上面几种基本类型(无序地)组合在一起
  • object 的 key 一律是字符串,不存在其他类型的 key
  • object[''] 是合法的
  • 属性的读取
    读取对象的属性,有两种方法,一种是使用点运算符,还有一种是使用方括号运算符。两者是有区别的
//如果使用方括号运算符,键名必须放在引号里面,否则会被当作变量处理。
var foo = 'bar';

var obj = {
  foo: 1,
  bar: 2
};

obj.foo  // 1
obj[foo]  // 2



  • 查看属性
    查看一个对象本身的所有属性,可以使用Object.keys方法
var obj = {
  key1: 1,
  key2: 2
};

Object.keys(obj);
// ['key1', 'key2']



  • 删除属性delete命令用于删除对象的属性,删除成功后返回true
var obj = { p: 1 };
Object.keys(obj) // ["p"]

delete obj.p // true
obj.p // undefined
Object.keys(obj) // []



  • 属性是否存在in运算符用于检查对象是否包含某个属性,如果包含就返回true,否则返回false
var obj = { p: 1 };
'p' in obj // true
'toString' in obj // true



  • 属性的遍历for...in循环用来遍历一个对象的全部属性
var obj = {a: 1, b: 2, c: 3};

for (var i in obj) {
  console.log('键名:', i);
  console.log('键值:', obj[i]);
}
// 键名: a
// 键值: 1
// 键名: b
// 键值: 2
// 键名: c
// 键值: 3



注意:for...in遍历的是对象所有可遍历(enumerable)的属性,会跳过不可遍历的属性。for...in不仅遍历对象自身的属性,还遍历继承的属性。

6.typeof操作符

typeof运算符可以返回一个值的数据类型。
null和function比较特殊




typescript number强转string number转成string_键值


typeof操作符.png