1.关于数字和字符串知识拓展
1.1.区别
1.1.1.功能
- 1和’1’ 前者是数字,后者是字符串
- 数字能加减乘除,字符串不行
- 数字不能表示电话号码,字符串可以
1.1.2.JS中存储形式

所以31(十进制)=011111(二进制)
- 2 转 10
1.2.1.用十六进制表示二进制
1.3.如何存储字符(先编号,然后存编号)
最初
1.3.1.中国人开始用电脑,怎么表示中文
1.3.2.GB2312(4位16进制数—16位二进制数)
1.3.3.微软推出国标扩展(简称GBK)

再继续,人们又需要一些藏文,泰文;而网页无法显示,继续编号,万国码出世
1.3.4.万国码 (Unicode)
优点:
- 已收录14万多字符,全世界通用
缺点:
- 两个字节不够用,每个字符要用三个及以上的字节
-
1.3.5.UTF-8出世
UTF-8 是 Unicode 一种存储规则,也叫字符编码规则
鸡贼的存法,省空间
UTF-8的规则
2.JS 中的数据类型
7种:四基两空一对象*
2.1.数字 number
2.1.1.写法
2.1.2.特殊值
正 0 和负 0
都等于 0 ,但不一样。如: 1/+0 =+∞;1/-0 =-∞
- 无穷大
Infinity、+Infinity、-Infinity
- 无法表示的数字
NaN(Not a Number)—也是个数字,只是现在无法表示。而且NaN不等于NaN,因为并不知道 NaN 表示的是不是一个值
2.1.3.64位浮点数
2.1.4.范围和精度
2.2.字符串 string(每个字符两个字节)
2.2.1.写法
2.2.2.转义*
2.2.3.字符串的长度(string.length)
'123'.length //3'\n\r\t'.length //3''.length //0' '.length //1(中间有几个空格就是几)'\\\\\\'.length //3
2.2.4.通过下标读取字符
2.2.5.base64 转码

window.btoa('123') //MTIzwindow.atob('MTIz') //123
2.3.布尔 boolean(真或假)
2.3.1.下面运算符会得到 bool 值
否定运算
!value
相等运算
1 == 21 != 21 === 21 !== 2
比较运算
1 > 2 / 1 >= 2 / 3 < 4 / 3 <= 4
2.3.2.if 配 bool
2.3.3.五个 falsy 值*
falsy 就是相当于 false 但又不是 false 的值
分别是 undefined 、 null 、 0 、 NaN 、 ‘’
两个空,两个数字,一个字符串为空2.3.4.undefined 和 null 两种空类型
2.4.符号 symbol(不常用的数据类型)
参考文章
Symbol 生成一个全局唯一的值。
可以用以下代码验证var a1 = Symbol('a')var a2 = Symbol('a')a1 !== a2 // true
3.变量声明
现在写代码只用 let(用作给变量声明) 和 const(用做给常量声明) 两种声明 ,不用var

- 变量声明指定值的同时也指定了类型
3.1.let 声明

for+var
for(var i=0;i<5;i++){setTimeout(()=>console.log(i),0)}//打出五次5
for+let
for(let i=0;i<5;i++){setTimeout(()=>console.log(i),0)}//分别打出 0 1 2 3 4
3.2.const 声明
规则跟let 几乎一样
只有一条不一样:声明是就要赋值,并且赋值后不能更改
3.3.变量和常量区别一下 name 和 ‘name’
4.类型的转换
4.1.number => string
- String(n)
-
4.2.string => number
[x] Number(s)
- parseInt(s) 转整数(现在默认十进制自动加10,不用在s后面加 ,10 ;以前的0开头的,JS 默认八进制)
- parseFloat(s)
- s - 0
- +s
4.3.x => bool
有一个 bug:1.toString() —JS 会认为. 后面还应该有数字没有写完
所以只能写成 (1).toString 或者 1..toString()
资料来源:
饥人谷
网道教程






