美文网首页
1. 类型 2.值

1. 类型 2.值

作者: 招展君 | 来源:发表于2016-11-29 14:26 被阅读10次
  1. 一个js的bug,理论上跟undefined一样返回的是相应的类型,但是并没有


    Paste_Image.png
    Paste_Image.png
  2. 在做undefined判断时候 要尽量避免直接判断
//不推荐:  原因是如果出于某种意外, b未定义(var声明),那么程序直接会报错
if(b){
    XXX
}
//推荐的写法 
if(typeof b =='undefined'){
    XXXX
}
Paste_Image.png
Paste_Image.png
  1. 以上其实就是undefined(未定义) 和undeclared(未声明)的区别, 而js 中两者分的并不是很清楚。



数组

  1. delete typeof 都是运算符, delete可以删除数组元素,但是length不会发生变化,只是删除了元素值


    Paste_Image.png
  2. 数组长度隐式变化


    Paste_Image.png
  3. 数组是特殊的对象,所以索引值也可以为非数字,但是并不记在length内


    Paste_Image.png
  4. 还有一点需要注意,那就是如果字符串键值可以被强转(这里的强转的只有数字字符串)成十进制数字的话,那么就会被当做数字索引来处理


    Paste_Image.png
  5. 有时候需要把类数组转成真正的数组,从而可以使用数组的各种方法, 其办法就是用数据工具函数如(indexOf/ concat /forEach 等等来实现,实现方法略不同),以下为数组的slice工具方法实现图


    Paste_Image.png
//es6中  var arr = Array.from(arguments) 也可以实现同样的功能

字符串

  1. 字符串某些部分和数组的确很相似,但它毕竟不是数组


    Paste_Image.png
  2. 数组的非变更方法可以借用给字符串来使用 比如 join,map
    Paste_Image.png
  3. 对于会变更数组原本值的方法,则不可用以上, 非要用,曲线方法就是字符串先转成数组,操作后再转回字符串
  4. undefined并不等于false,但是!undefined却等于true (开发中碰到的问题);


    Paste_Image.png

数字

  1. 数字常亮也可以用Number的方法,不过需要注意个问题,如下图


    Paste_Image.png
对于43.   这个小数点会先被识别成数字常亮的一部分,然后才是对象属性访问运算符
  1. Number.isInteger(num) 来判断数字是否是一个整数
  2. 非严格模式下可以给undefined赋值,不会报错,但是无效的。


    Paste_Image.png
原因是null是个特殊关键字,而不是标识符,然而undefined 却是个标识符
  1. NaN 是js中唯一一个不等于自身的值,用这个特点来检验数字是否有效


    Paste_Image.png

    所以判断一个数字是否有效并不能用如下的办法, 需要用到isNaN, 但是给isNaN传入一个非数字参数后仍会返回true, 所以并不保险。


    Paste_Image.png

相关文章

  • 1. 类型 2.值

    一个js的bug,理论上跟undefined一样返回的是相应的类型,但是并没有Paste_Image.pngPas...

  • typeof 运算符有哪些用

    1.识别所有的值类型 2.识别所有的值类型

  • 1.变量类型和计算

    变量类型(值类型、引用类型) 1.值类型的特点:不会因为赋值相互干扰 2.引用类型{对象、数组、function}...

  • Swift 数据类型

    1.可选类型:Optional 使用可选类型来处理值可能缺失的情况。可选类型表示有值或没有值。 2.类型别名 类型...

  • C# 值类型和引用类型 Day0815

    值类型: 1.枚举类型 enum 2.结构类型 1.数值类型int(32) float(32) double(64...

  • 一、iOS的类型

    1.引用类型 class pointer block 2.值类型 基础数据类型 struct enum 3.类型装...

  • Java之值类型和引用类型的扩展分析

    大纲: 1.什么是值类型,什么是引用类型? 2.值类型int和引用类型Integer的区别和转换 3.Java之按...

  • GeekBand OC 2. 类与对象

    类型系统 1. 引用类型:类(Class) 2. 值类型 3. 类型装饰 类 1. 接口 属性表达状态 方法表达行...

  • NO.74 Spring注入相关

    1. 注入基本类型的值 使用value属性 2. 注入集合类型的值 List,Set,Map,Properties...

  • std::move

    首先需要了解一下c++的值的类型 c++ 值的类型 1. lvalue(左值) 2. prvalue(纯右值) 3...

网友评论

      本文标题:1. 类型 2.值

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