js基础(二)

流程控制语句

条件判断语句

if(条件表达式){语句}
条件表达式为true执行语句,反之不执行。

条件分支语句

js基础(二)

js基础(二)

循环语句

while:先判断再执行
js基础(二)
js基础(二)
js基础(二)
do…while:先执行再判断,保证至少执行依次;
for:
js基础(二)
js基础(二)


对象

基本数据都是单一的值’abc’,123 ,true,没有任何联系
但如果我们要用JS表示一个人的信息:
js基础(二)
他们毫无关系。都是独立的。
如果使用这种基本数据类型,我们创建的变量都是独立的,不能成为整体。
对象属于一种复合的数据类型,在对象中可以保存多个不同数据类型的属性。

对象的分类:
  1. 内建对象:ES标准中定义的对象,在任何的ES的实现中都可以使用,比如:Math,String,Number,Boolean,Function…
  2. 宿主对象:由JS的运行环境提供的对象,目前来将主要指浏览器提供的对象。比如:BOM,DOM.
  3. 自定义对象:开发人员自己创建的对象;
创建对象

使用new关键字调用的函数,是构造函数constructor,
构造函数是专门用来创建对象的函数。
使用typeof会返回object
js基础(二)

在对象中保存的值称为属性

向对象添加属性

语法: 对象 . 属性名 = 属性值;
js基础(二)

读取对象中的属性

语法: 对象 . 属性名
js基础(二)
如果读取对象中没有的属性,不会报错,返回undefined;

修改对象中的属性

语法: 对象 . 属性名 = 新值;

删除对象中的属性

语法: delete 对象 . 属性名
js基础(二)

属性名和属性值

对象的属性名不强制要求遵守标识符规范,什么名字都可以用,但不提倡。

js基础(二)
JS对象的属性值,可以是任意的数据类型。甚至也可以是一个对象。
in 运算符:检查一个对象中是否含有指定的属性
如果有返回true,没有反之。
语法: “属性名” in 对象
js基础(二)


基本数据类型和引用数据类型

基本数据类型:String, Boolean,Number,Null,undefined
引用数据类型:Object
JS中的变量都是保存到栈内存中的。

基本数据类型的值直接在栈内存中存储,值与值之间是独立存在的,修改其中一个对其他没有影响。
js基础(二)
对象是保存到堆内存中的,每创建一个新对象,都要在堆内存中开辟出一个新的空间。而变量保存的是对象的内存地址(对象的引用);如果两个变量保存的是同一个对象的引用,当一个改变另一个一定改变。
js基础(二)
但如果修改的是obj2的变量值,那么对另一个obj没有影响。
js基础(二)

当比较基本数据类型是比较的就是值,
但比较引用数据类型比较的是对象的内存地址,内存地址不同绝不相同。

js基础(二)
js基础(二)


对象字面量

//创建一个对象
var obj = new Object( );

//使用对象字面量来创建一个对象
var obj = { };

可以在创建对象时,直接指定对象中的属性;如果使用一些特殊的属性名,则需要加引号。
var obj2 = {
name :‘abc’ ,
age : 18
};