js : 数据类型、比较、转换

属性的操作方式

  1. "." 点
  2. []

p.s: 数字不能用"." ,只能用[],并且,所有用"."能操作的属性,都能用[]来写;

等号"="

  • "=" 一个等号是用来赋值的
  • "==" 两个等号是用来比较的,是非严格比较
  • "===" 三个等号也会是比较,是严格比较

p.s: 非严格比较之比较值,也就是结果;严格比较即比较值,也比较数据类型

文字超出用省略号代替

white-space: nowrap; //不折行
text-overflow: ellipsis; //当文本溢出的时候,以什么形式来展现,ellipsis 代表省略号
overflow: hidden; // 内容溢出隐藏

** switch 的坑:switch是严格比较**

数据类型

  • typeof 数据类型的判断
  • 数据类型分为:
    • 基本数据类型:string、number、Boolean、null、undefined
    • 引用数据类型
      • 对象数据类型:Object、Data、Array、RegExp
      • 函数数据类型:function

null和undefined的区别

  • null表示现在没有,以后会有
var data = null;//请求结束时,data才会有赋值,data=[{},{}.....]
  • undefined表示现在没有,以后也没有
    • 没有设置return
    • 设置了return,但是没有返回值
      +获取对象的某个属性不存在时,获取到的是undefined
    • 设置了形参,但是没有赋值
  • 对象 {}
  • 书写形式:{k:v,k:v,k:v}
  • 对象用for...in 遍历

对象的增删改查

作用 对象 数组
obj.xxx = xxx arr[x] = xxx;
obj.xxx = xxx arr[x] = xxx;
obj.xxx arr[x]通过数组的索引进行查找
假删 obj.xxx = null splice
真删 delete obj.xxx 数组不能通过delete删除

数组的删除 splice

  • 如果是两个参数,作用 删除,第一个值为从第几个开始,第二个值为删掉几个
  • 如果是三个参数,且第二个参数为 0 ,代表插入,第一个从第几个开始,第二个值为0 表示不删除,第三个值添加的内容
  • 如果是三个参数,且第二个参数为 0,表示替换

数组的循环

  • for循环
  • for...in 循环

数字Number

  • 常用方法:
    • toFixed 四舍五入保留小数
    • parseInt 保留整数
    • parseFloat 保留浮点数
  • 字符串转数字:一严二非严
    • Number 严格
    • parseInt 非严
      +parseFloat 非严
  • 数据转换失败的时候返回NaN
  • isNaN() 判断数据是否为非有效数字
  • Boolean值转换为数字 true 为1,false 为 0;
  • null 转换数字为 0
  • undefined 转换数字为 NaN
  • null == undefined 返回值为 true
  • 对象转换数字:[] 通过toString()转为“” 空字符串,空字符串在通过Number() 转换为 0;

哪些是真,哪些是假

  • 除了以下六个为假,其他都为真:
    • false
    • 0
    • “”
    • null
    • undefined
    • NaN

“==” 数据类型之间的比较

  • 对象和对象比较,按照地址进行比较
  • 对象和布尔值比较,按照数字进行比较
  • 对象和字符串比较,按照字符串进行比较
  • 对象和数字比较,按照数字进行比较
  • 字符串和数字进行比较,按照数字进行比较
  • 字符串和布尔值进行比较,按照数字进行比较
  • 数字和布尔值进行比较,按照数字进行比较
  • null 和 undefined比较为 true
  • NaN 和任意数据类型比较,包括NaN自己,都为false

运算符

  • 比较运算符:< > <= >= == === != !==
  • 算数运算符:+ - * / %
  • 逻辑运算符:&& || !

小技巧

  • “+”:具备两个功能1.字符串拼接 2.运算
  • 除了“+”不会进行隐式转换外,其他的运算符都可以进行隐式数据转换
  • “%”:有几种情况就%几
  • 用 && 代替if
    true && alert("真"); // 为真时输出
    
  • 用 || 代替else
    flase || alert("假"); //为假时输出
    
  • 赋值运算符:+ - += -= *= /= %=

运算符的优先级
算数 > 比较 > 逻辑 > 赋值