10.1 数字与字符串
-
电话号码必须用字符串来存, 因为数字版电话号码前面的0会自动省略,造成数据损坏
-
数字会转化二进制存入计算机, 字符通过编码存入, 计算机通过后缀来区分, 例如
.txt就是字符串,.exe就是二进制 -
二进制转16进制:四个一组来转
-
要记住的字符编码: 0: 48 ; A :65, a:97,
-
字符编码的发展历程:
- 中文国标字符编码**(GB)**只有常见汉字太少了
- 微软出手发布(GBK), 还是太少, 没有蒙古文, 没有其他少数民族的文字
- UTF 万国码来到, 全世界通用, 缺点: 每个字符需要用三个及以上字节, 所有文件扩大50%
- 程序员想偷懒: 固长存储转为变长存储, 就有了utf-8,
1110代表第一个字节有三个part,10: 我是接着上面的.
10.2 数据类型
六个简单类,一个复杂类:
- number string bool symbol undefined null
- object //数组, 函数, 日期 也是object
数字类的变态情况:
-
正零和负零有区别:
1/+0 //infinite 1/-0 //-infinite -
NaN: 一个无法表示的数字.-
例如: 负数没出现之前:1-5 = NaN
-
0/0 // NAN NaN == NaN //false
-
-
如何存储浮点数: 0.5 => 1 => 12^-1^ =>
0 -1 01.652^-1^ =>
0 -1 65最大数字: Number.MAX_VALUE
字符串
-
\转义,写法 含义 \'' \"" \n换行 \r回车 \t制表符 \\\ \uFFFF对应的Unicode字符 \xFF前256个Unicode字符 -
万能反引号`` `: 里面随便写字符串不用转义, 多行字符串也可以
-
base64:只能用于隐藏简历邮箱, 没有其他作用
-
所有的六个假值:
false undefined null 0 NaN ''
undefined 和 null的区别
-
js原创之处
-
undefined: 是默认的空, null主动
-
undefined多了两种默认情况: 1. 变量声明没有赋值. 2. return后面没有变量, 或者加了回车
var 和let 和const
-
var过时 ,
a=1过时, 不准用var, 只能let const -
全局申明的let变量,不会挂载到window, var会
-
for循环配合let有奇效. 主要是
setTimeout -
const 声明必须赋值
###10.3 类型转换
-
number => string
-
String(n) -
n+'' -
陷阱:Number足够大, 会变成科学技术法:
-
-
string => number
Number(s)s - 0parseInt(s), parseInt , 已经默认加10, 以前必须加的原因 0开头字符串转化, 默认8进制
-
x => bool
Boolean(x)!!x
-
x => string
String(x)x.toString()