JavaScript的七种数据类型

2019-03-22  本文已影响0人  饥人谷_闫向阳

number

十进制及科学计数法
二进制(0b11)
八进制(011,ES5 添加了 0oxx 语法)
十六进制(0x11)

string

空字符串:'',长度为0
空格字符串:' ', 长度为1
表示单引号 var a = ' \' '(\为转义符)
表示转义符var b = ' \\ ', 长度为1

boolean(布尔)

值为ture/false
&&与运算,||或运算

symbol

不常用,可参考方方的https://zhuanlan.zhihu.com/p/22652486

null和undefined

1.变量没有赋值==>undefined
2.有一个对象object,现在不想赋值,==>null(推荐)
3.有一个非对象,不想赋值==>undefined
以上六种为基本类型(简单类型)

object

object为复杂类型,复杂类型是由简单类型组成的
对于var a = {'key1' = 'value1', 'key2' = 'value2'}, key可以为空字符串,a['key']中的引号一般不能省略;key按照标识符规则书写时,引号可以省略。并且a['key']可以改写成a.key
删除key:delete a['key'], 删除后该key为undefined

几个BUG

1.typeof null //'object'
2.typeof function // 'function'

几个问题

  1. JavaScript引擎不能自动识别编号大于0xFFFF的Unicode字符
    JS允许在程序中使用Unicode编号表示字符,写成\uxxxx的形式
    '\u00A9' 表示 "©"
    var f\u006F\u006F 是合法的
    "𝌆".length 为 2 但 "𝌆" 是单个字符
  2. 全局函数 btoa() 能将字符串转为Base64编码
    全局函数 atob() 能将 Base64编码转为原来的编码
    要将非ASCII码字符转为Base64编码,必须中间插入一个转码环节
  3. 对象就是一组“键值对”(key-value)的集合,是一种无序的复合数据集合
    var o1 = {}; 可以创建一个对象
    var o2 = new Object(); 可以创建一个对象
    var o3 = Object.create(Object.prototype); 可以创建一个对象
  4. 想知道变量 a 是否已经声明过(值为 undefined 不代表没有声明过),应该用if ('a' in window) { ... }
    想知道一个对象有哪些 key,应该API Object.keys(obj)
  5. for…in 循环
    for...in 循环用来遍历对象
    for...in 循环会跳过不可遍历的 key
    for…in 循环不仅遍历对象自身的属性,还遍历继承的属性

参考:http://javascript.ruanyifeng.com/

上一篇 下一篇

猜你喜欢

热点阅读