数值、逻辑值、字符串、null、undefined对象和函数都是直接量。字符串需要有双引号或单引号包裹,数字不需要。
"Hello World";'Hello World'
但是数据产生后不能直接保存。
如要保存数据,需用var定义一个变量再将它指向直接量。(var是定义变量的工具)
var a; a="Hello World"
也可合并为
var a="Hello World"
在JavaScript中数据分为两大类别,分别是原生数据类型也叫原始值(primitive type)和对象数据类型也叫引用值(object type)。 原生数据类型包括:数字、字符串、布尔值(逻辑值)和特殊类型null、undefined。 布尔值只有两个类型,true(翻译为事实)或false(翻译为虚假),他们也叫逻辑值。 null和undefined表示直接量的空缺,如果直接量指向了他们都代表false的含义,也表示没有或空。null表示没有值,undefined更高级,表示某个变量未定义。
对象数据类型是一种复合数据类型(也叫对象),可以把多个数据放在一起,在其中的数据每个都可以看做是一个单元,都有自己的名字和值。
var container={}
这是对象数据类型最常用的一种创建方式(container翻译为容器)
var container={ caoyao:"草药" }
在这个对象数据中caoyao叫做键,草药叫做值,写在一起是一种键值对的形式。 键值对中间用冒号连接。 如需添加多个键值对只需要用(,)连接。
var container={ caoyao:"解毒草", feijian:"乌木剑" }
也可在外面对变量进行操作,写作:
var container={} container.caoyao="解毒草"; container.feijian="乌木剑";
其中(.)是对象访问属性的意思,因为caoyao是container的属性,所以container才可以用(.)。对象中包含若干数据,每个数据都是一个键值对,这些数据也叫对象的属性。键值对中的键就是属性名称,值就是属性值。 上例中,对象包含的属性caoyao是一组数据也是对象中的属性,这组数据是一个键值对,caoyao是这个属性的名字,解毒草是这个属性的实际值也就是值。(对象⊆属性=这组数据=这组键值对,仅在此例中)
var container={} container.caoyao="解毒草"; container.feijian="乌木剑"; console.log(container.danyao);//注意:丹药这个属性是不存在的
如果使用工具访问一个根本不存在的属性,因为danyao这个属性是不存在于container对象中的,因此它是未定义的,得到的结果是undefined。
上单元例中用属性的名字可以直接调用属性值。
container.caoyao;
如果事先不知道调用的属性叫什么名字,如何定义一个变量。
var container={ caoyao:"解毒草", feijian:"乌木剑" } var prop="caoyao";
如直接prop只能显示undefined 这时需要:
var container={ caoyao:"解毒草", feijian:"乌木剑" } var prop="caoyao"; console.log(container.[prop])
或者
console.log(container.["caoyao"])
来得到结果即解毒草
对象中不仅可以用(.)来访问它的一个属性,也可以用([])。如果使用中括号 里面就允许在写一个变量,或是字符串。也就是在事先属性的名称为止,或者调用的属性是动态变化的,就不能用点好了。使用中括号可以最大程度地提升对象调用属性的灵活度。