js数据类型

数据类型

数字 number
字符串 string
布尔 bool
符号 symbol
undefined
null
对象 object

number

特殊值: 正0和负0、无穷大 、NaN

string

用法:单引号、双引号、反引号



属性:

获取长度 String.length
通过下标读取字符 String[index]

'\n\r\t'.length         //3
''.length               //0
' '.length              //1
//index是从0开始

base64转码

window.btoa:正常字符转为Base64编码的字符串
window.atob:Base64编码的字符串转为原来的字符串

boolean

值:true / false

if 语句与bool
if (value) {...}

如何判断value值?

  • value值是bool值,则按相应值处理
  • value值不是bool值,除了五个falsy值被转为false,其他值都视为true。
  • falsy值:undefinednull0NaN''
if ('') {
  console.log(true);
}
// 没有任何输出

上面代码的if命令后面的判断条件,预期应该是一个布尔值,所以JavaScript自动将空字符串,转为布尔值false,导致程序不会进入代码块,所以没有任何输出。

需要特别注意的是,空数组([])和空对象({})对应的布尔值,都是true

if ([]) {
  console.log(true);
}
// true

if ({}) {
  console.log(true);
}
// true

undefined、null

变量声明

  • let声明

1.遵循块作用域,即使用范围不能超出{}
2.不能重复声明
3.可以赋值,也可以不赋值
4.必须先声明后使用,否则报错
5.全局声明的let变量,不会变成window的属性
6.for循环与let配合

  • const声明

1.遵循块作用域,即使用范围不能超出{}
2.不能重复声明
3.必须先声明后使用,否则报错
4.声明时需赋值,赋值后不能修改
5.全局声明的const变量,不会变成window的属性


类型转换

  • number => string

String(n)
n + ''

  • string => number

Number(s)
parseInt(s) / parseFloat(s)
s - 0

  • x => bool

Boolean(x)
!!x

  • x => string

String(x)
x.toString()

.toString() js秘密花园

你可能感兴趣的:(js数据类型)