美文网首页
2018-11-14 JavaScript数据类型与操作等基本概

2018-11-14 JavaScript数据类型与操作等基本概

作者: 假装热爱学习 | 来源:发表于2018-11-30 13:28 被阅读0次

    数据类型

    Undefined/Null/Boolean/Number/String五种简单数据类型。
    使用typeof操作符可以返回变量或操作数的类型说明字符串:

    字符串 含义
    undefined 值未定义
    boolean 值是布尔值
    string 值是字符串
    number 值是数值
    object 值是对象或null
    function 值是函数

    Undefined类型(只有一个值undefined)

    使用var声明变量但未初始化时此变量的值就是undefined。

    Null类型(只有一个值null)

    null值表示一个空对象指针,故使用typeof检测是返回object。
    一般声明变量用于保存对象时初始化为null,另外,null == underfined的操作返回true。

    Boolean类型(true和false)

    存在函数Boolean(变量名),转换规则:

    数据类型 转为true 转为false
    String 任何非空字符串 空字符串
    Number 任何非零数字值 0和NaN
    Object 任何对象 null
    Undefined not applicable(n/a) undefined
    Boolean true false

    Number类型(整数和浮点数)

    十进制
    八进制第一位为0,然后是0-7,超出范围则当十进制。严格模式下八进制无效
    十六进制以0x开头

    • 不要以浮点数运算结果作为判断条件,因为计算精度存在误差
    • 内存限制,存在数值范围,超出范围则为Infinity或-Infinity,即正负无穷。
    • NaN:任何数值除以0返回NaN,NaN不等于任何值,不等于自身。isNaN(变量名)不能转换为数值则为真。
    • 数值转换函数:Number(变量)/parseInt(变量,可选用于指定进制基数)/parseFloat(变量)分别有具体的转换规则。

    String类型

    toString()方法。

    Object类型

    Object的每个实例对象存在的属性和方法:

    Constructor 保存着用于创建当前对象的函数。
    hasOwnProperty(propertyName) 检查给定的属性在当前实例对象中是否存在
    isPrototyOf(object) 检查传入的对象是否是另一个对象的原型
    propertyIsEnumerable(propertyName) 检查给定的属性是否能够作为for-in语句来枚举
    toLocaleString() 返回对象的字符串表示,该字符串与执行环境的地区对应
    toString() 返回对象的字符串表示
    valueOf() 返回对象的字符串、数值或布尔值

    操作符

    一元操作符(只操作一个值)

    • 递增和递减,其实和c一样吧
    • 一元加和减 ,用于算术运算或转换数据类型
    • 位操作符:按位非(操作数的复值减一)~、按位与&、按位或|、按位异或^、左移<<、有符号的右移>>(保留符号位)、无符号的右移>>>
    • 布尔操作符:逻辑非、逻辑与、逻辑或
    例如逻辑非对应的规则 结果
    alert(!false) false
    alert(!"string") false
    alert(!"") true
    alert(!0) true
    alert(!123456) false
    alert(!NaN) true
    • 乘性操作符:加减乘除
    • 关系操作符
    • 相等操作符
    • 条件操作符
    • 赋值操作符
    • 逗号操作符
      (以上这些操作符一般都有对应的规则)

    语句

    • if语句
    • do-while语句:循环体中语句至少被执行一次
    • while语句
    • for语句
    • for-in语句 可以用来枚举对象的属性等
    //枚举BOM中window对象的所有属性
    for(var propName in window){
          document.write(propName);
    }
    //最后先确认被循环的对象值不是null或undefined。
    
    • label语句
      这个是可以在代码中添加标签,一遍将来使用的样子。
    //eg://标签由break或continue引用 
    start:for(var i=0;i<count;i++){alert(i)}
    
    • break和continue语句
    • with语句 将代码的作用域设置到一个特定的对象中。大量使用会导致性能下降。严格模式下不允许使用。
    • switch语句 特色是switch可以是任何数据类型:字符串、对象等,case甚至可以是变量或表达式。比较值时使用的是全等操作符,因此不会有类型转换。

    函数

    function关键字
    不必定义是否返回值
    return可以不烦会任何值,自动返回undefined
    严格模式有关键字限制
    命名参数只提供便利,不是必须。因为以数组的形式传递,可以用arguments对象像数组一般访问。类似重载,但ECMAscript没有重载啊。
    没传递值的命名参数自动赋予undefined
    严格模式对arguments对象有限制,例如设置了arguments[1]=10,对应位置的命名参数没有被传值的话还是undefined。
    同名后定义的函数覆盖先定义的函数啊,没法重载。

    相关文章

      网友评论

          本文标题:2018-11-14 JavaScript数据类型与操作等基本概

          本文链接:https://www.haomeiwen.com/subject/ahksfqtx.html