数据类型
常规方法区分
- JavaScript有两种数据类型
- 值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined)、Symbol。
- 引用数据类型(对象类型):对象(Object)、数组(Array)、函数(Function),还有两个特殊的对象:正则(RegExp)和日期(Date)。
- 摘自菜鸟教程https://www.runoob.com/js/js-datatypes.html
然而
- 上述描述不方便新手进行学习,因此我用下面方法为大家进行区分
- 可以两个互相参考进行学习与理解
1.简单数据类型
- 定义及使用理解都相对简单
1.Number 数字型
- 对应现实生活中的数学数字, 当我们需要进行数学运算时, 需要用到此类型
- 包括
整数
(int/long),小数
(float/double),负数
(负数也是整数),分数
(分数也是小数 )等
let 数字变量 = 123
logd(数字变量) // 返回 123
logd(typeof 数字变量) // 返回 number
2.String 字符串型
- 对应现实中的文字内容,比如你想打一句话给对方,此时内容即为字符串类型
- 字符串内容需要用
一对
单引号/双引号
包裹起来,并赋值给变量
let 字符串变量1 = '我想对你说' // 一对单引号
let 字符串变量2 = "你还是别说了" // 一对双引号
logd(字符串变量1) // 返回 我想对你说
logd(字符串变量2) // 返回 你还是别说了
logd(typeof 字符串变量1) // 返回 string
logd(typeof 字符串变量2) // 返回 string
- 如果文字本身需要保留单引号/双引号, 则用另一种引号包裹即可
let 保留单引号 = "我想保留'单引号'内容"
let 保留双引号 = '我想保留"双引号"内容'
logd(保留单引号) // 返回 我想保留'单引号'内容
logd(保留双引号) // 返回 我想保留"双引号"内容
- 带引号的数字,也是字符串类型
let 我是数字吗 = 123
logd(我是数字吗) // 返回 123
logd(typeof 我是数字吗) // 返回 number
我是数字吗 = "123"
logd(我是数字吗) // 返回 123
logd(typeof 我是数字吗) // 返回 string
3.Boolean 布尔型[真/假]
- 布尔值只有两个取值
true
/false
, 对应真
/假
- 一般用来判断条件是否成立, 或行为是否完成, 或事件开关等来使用
let 真的吗 = true
logd(真的吗) // 返回 true
logd(typeof 真的吗) // 返回 boolean
真的吗 = false
logd(真的吗) // 返回 false
logd(typeof 真的吗) // 返回 boolean
2.复杂数据类型
1.Object 对象/键值对
简单理解
- 对象是对现实事物的一种抽象理解,对象拥有属性和方法
- 以人为例,人有名字,年龄,身高,体重,这些都是
属性
- 人可以去开车,去跳舞,去吃饭,说一句话,这些是
方法
- 对象可以用一对大括号来进行定义
{}
- 而属性和方法,则在
{}
中书写,并用冒号:
隔开的键值对 键key
值value
来进行定义 - 不同的属性或方法, 通过逗号
,
进行分隔
let 对象_人 = {"姓名": "Mr_老冷", "年龄": 36, "身高": 182, "QQ": "1920712147"}
logd(对象_人) // 返回 [object Object]
logd(typeof 对象_人) // 返回 object
优化
- 由上述输出可见,
logd
并没有打印出对象的具体内容 - 此是由于在EasyClick中,为了绕过rhino内核的一个bug,限制了输出内容
- 如果想打印具体内容,需要转成json并打印,此时需要借助js自带的JSON模块
- 更多方法点击跳转-JSON与对象互转使用方法
let 对象_人 = {"姓名": "Mr_老冷", "年龄": 36, "身高": 182, "QQ": "1920712147"}
logd(JSON.stringify(对象_人)) // 返回 {"姓名": "Mr_老冷", "年龄": 36, "身高": 182, "QQ": "1920712147"}
logd(typeof JSON.stringify(对象_人)) // 返回 string
打印
属性- 如果需要打印对象的属性,有两种方法
let 对象_人 = {"姓名": "Mr_老冷", "年龄": 36, "身高": 182, "QQ": "1920712147"}
logd(对象_人.姓名) // 返回 Mr_老冷
logd(typeof 对象_人.姓名) // 返回 sting
logd(对象_人.年龄) // 返回 36
logd(typeof 对象_人.年龄) // 返回 number
logd(对象_人["姓名"]) // 返回 Mr_老冷
logd(typeof 对象_人["姓名"]) // 返回 sting
logd(对象_人["年龄"]) // 返回 36
logd(typeof 对象_人["年龄"]) // 返回 number
修改
/ 新增
属性- 如果需要修改/新增对象的属性,有两种方法
let 对象_人 = {"姓名": "Mr_老冷", "年龄": 36, "身高": 182, "QQ": "1920712147"}
logd(对象_人.姓名) // 返回 Mr_老冷
对象_人.姓名 = "