js中的变量

85 阅读1分钟

JS中的变量

  • 简单数据类型

    • 数字型 number

    • 字符型 string

    • 布尔型 boolean

    • 未定义 undefined 变量声明不给值默认为undefined

    • 空对象 null

    • 复杂数据类型

数据类型检测 typeof()

  • 会把null检测为object,不准确

数据类型转换

  • Number()

    • 字符串:空字符串或者空白字符串为0;非空不为纯数字转化为NAN;

    • 布尔类型·:true为1 false为0;

    • undefined:NAN

    • null:0

    • 运算符和字符串 如:+‘123’会转化为数字型的123 或者‘123’-0

    • paserInt:‘12.9px’ -> 12 会读取字符串直到第一个非数字出现,将读取到的数字转化为数字型

    • paserfloat: '12.9px' ->12.9 同上

    隐式转换:-,,/等运算 如‘123’-2 则会把‘123’转换为数字型123

  • String()

    • 数字加空字符串会转化为字符串类型(只要加号任意一侧存在字符串,则该加号会被理解为字符串拼接)

    • toString()方法,undefined和null没有该方法

  • Boolean()

    • 只有 “0/NaN/null/undefined/空字符串” 最后是false,其余的都是true

    • 数字 除了0为false,其他都为true

  • 字符串 只有空字符串为false,空白字符串为true

    • undefined 转为false

    • null 转为false

    • !undefined 表示true,是一种隐式转换 还有!!undefined 表示取反再取反,所表示的布尔值没有改变。

  • 运算符

    • +号,任何一侧有字符串都会被解析为字符串拼接

    • -,*,/,%都正常执行,‘123’-2 中的字符串会被解析为数字型,如果无法计算就是NAN

    • +=,-=,*=,/=,%=

    • 比较运算符<,>,<=,>=,==,===(区分数值类型),!=,!==