JS有7种数据类型:
number、string、boolean、null、undefined、symbol、object
number:又分为很多类,十进制,二进制,八进制,十六进制
string: 可以用单引号引起来,也可以用双引号,转义字符需要注意,
字符串可以被视为字符数组,因此可以使用数组的方括号运算符,用来返回某个位置的字符(位置编号从0开始);
如果方括号中的数字超过字符串的长度,或者方括号中根本不是数字,则返回undefined。
字符串与数组的相似性仅此而已。实际上,无法改变字符串之中的单个字符。
length属性返回字符串的长度,该属性也是无法改变的。
JavaScript 原生提供两个 Base64 相关的方法。
btoa():任意值转为 Base64 编码
atob():Base64 编码转为原来的值
boolean:
true or false
null,undefined
变量没有被赋值 - unfefined (语法)
有一个对象object,现在不想赋值,给一个null (null一般表示空对象)
有一个非对象,不想赋值,给一个 undefined (undefined一般表示非空对象)
object:
对象就是一组“键值对”(key-value)的集合,是一种无序的复合数据集合。
对象的所有键名都是字符串(ES6 又引入了 Symbol 值也可以作为键值),所以加不加引号都可以。
如果键名是数值,会被自动转为字符串。
如果键名不符合标识名的条件(比如第一个字符为数字,或者含有空格或运算符),且也不是数字,则必须加上引号,否则会报错。
读取属性:
读取对象的属性,有两种方法,一种是使用点运算符,还有一种是使用方括号运算符。
如果使用方括号运算符,键名必须放在引号里面,否则会被当作变量处理。
数值键名不能使用点运算符(因为会被当成小数点),只能使用方括号运算符。
查看所有属性:
查看一个对象本身的所有属性,可以使用Object.keys方法。
删除属性:
delete命令用于删除对象的属性,删除成功后返回true
删除一个不存在的属性,delete不报错,而且返回true
只有一种情况,delete命令会返回false,那就是该属性存在,且不得删除。
另外,需要注意的是,delete命令只能删除对象本身的属性,无法删除继承的属性
in运算符
in运算符用于检查对象是否包含某个属性(注意,检查的是键名,不是键值),如果包含就返回true,否则返回false
in运算符的一个问题是,它不能识别哪些属性是对象自身的,哪些属性是继承的。