JS基础(4)

76 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第22天,点击查看活动详情

typeof获取变量数据类型

typeof variabletypeof(variable)) 返回一个字符串,值为该变量的数据类型

console.log(typeof 1); // number
console.log(typeof false); // boolean
console.log(typeof 'aaa');    // string
console.log(typeof undefined);// undefined
console.log(typeof NaN); // number
console.log(typeof Infinity); // number
console.log(typeof null); // object
console.log(typeof typeof 1); // string

字面量

字面量是在源代码中一个固定的表示法,通俗来说,就是字面量如何表达这个值

  • 数字字面量:10
  • 字符串字面量:mphyaaa
  • 布尔字面量:truefalse

数据类型转换

什么是数据类型转换

使用表单、prompt获取过来的数据默认是字符串类型的,此时就不能直接简单的进行加法运算,而需要转换变量的数据类型。 通俗来说,就是把一种数据类型的变量转换成另外一种数据类型 我们通常会实现3种方式的转换:

  • 转换为字符串类型
  • 转换为数字型
  • 转换为布尔型

转换成字符串的三种方法

一般用第三种方式,隐式转换

  • toString() 方法
  • String() 方法
  • 加号 + 拼接字符串
var num = 12;
console.log(num.toString());
console.log(String(num));
console.log(num + '');

数字字符长转数字

var str = '123'
console.log(str - '');

转换为数字型

方式说明案例
parseInt(str) 函数string->整数型parseInt('10')
parseFloat() 函数string->浮点型parseFloat('3.14')
Number() 强转换函数string->数字型Number('12')
JS 隐式转换算术运算符隐式转换为数字型'12'- 0'12' - '''12'*1
console.log(parseInt('123')); // 123
console.log(parseFloat('3.14')); // 3.14
console.log('123' - 0); // 123
console.log('123' - ''); // 123
console.log(parseFloat('999')); // 999
console.log(parseInt('3.14159')); // 3
console.log(parseInt('120px')); // 120
console.log(Number('100')); // 100
console.log(Number('100.32')); // 100.32
console.log(Number('100px')); // NaN
console.log('100px' - ''); // NaN

(1)数字字符串('12.3'12)之间进行加法运算实际上是字符串的拼接,结果还是字符串;而数字字符串之间的减法运算是算术运算,结果是数字型。

(2)一个数字字符长和一个数字相乘,结果是算数运算结果,为数字型。

console.log('10' + '2'); // 102
console.log('10' - '2'); // 8
console.log('10' + '3.2'); // 103.2
console.log('10' - '3.2'); // 6.8
console.log('12'*3); // 36

转换为布尔型

使用 Boolean() 函数转换。

  • 转换值为 false'', 0, NaN, null, undefined(5个)
  • 其他的转换值均为 true
console.log(Boolean('')); // false
console.log(Boolean(0)); // false
console.log(Boolean(NaN)); // false
console.log(Boolean(null)); // false
console.log(Boolean(undefined)); // false
console.log(Boolean([])); // true

标识符、关键字、保留字