JavaScript基础5

在读取对象属性值时有“ . ”和[ ]方法,其中,使用[ ]更加灵活,用“ . ”容易写死

例1:
var obj = new object();
obj.n="123";
obj.m="hello"
console.log(obj.n);
console.log(obj.m);
例2:
var obj = new object();
var n = "123";
var m = "hello";
console.log(obj [n]);
console.log(obj [m]);

属性值:js的属性值可以使任意数据类型,也可以是一个对象

例:
var obj = new object();
var obj2 = new object();
obj.n = "123";
obj.m = "hello";
obj2.name = "hello world"
obj.test = obj2; //对象obj2
console.log(obj.test.name);
1. in 运算符

通过该运算符可以检查一个对象中是否含有指定的属性,如果有则返回true,没有则返回felse

语法:
“属性名” in “对象名”

例:
cosole.log("name" in "obj");

基本数据类型:String,undefinded,boolean,Number,Null
引用数据类型:object

注意:js的变量都是保存在栈内存中,基本数据类型也是保存在栈内存中的,而引用数据类型是保存在堆内存中的

例1:
var a = 1;
var b = a;
a++;
console.log("a="+a);
console.log("b="+b);
//此时输出
a = 2
b = 1
例2:
	var obj = new Object();
	obj.a = 1;
	var obj2 = obj;//将obj的内存地址赋予obj2
	//此时obj2指向obj的内存地址
	obj.a = 10;//重新给a赋值,地址不变
	
	console.log("a="+obj.a);
	console.log("a="+obj2.a);
	//obj2获取到a的值就是原内存地址不变的a的值
//此时输出
a = 10;
a = 10;

对象是保存在堆内存中的,每创建一个新的对象,就会在堆内存中开创一个空间存放一个地址。变量是存在栈内存当中的,变量的值为堆内存的内存地址,后来引用对象指将值(内存地址)赋予新变量,新变量指向内存地址获取值。

当我们比较两个基本数据类型的值时就是比较值,而比较两个引用数据类型时,他是比较的对象的内存地址

2. 使用对象字面量来创建一个对象

语法:
var obj = {};
相当于:var obj = new object();

使用对象字面量,可以在创建对象是,直接指定对象中的属性

语法:
{属性名:属性值,属性名:属性值、、、}

对象字面量的属性名可以加引号,也可以不加引号,建议不加,除非使用特殊名字那必须加引号;

3. 函数 function

函数也是一个对象
函数可以封装功能,在需要时可以执行这些代码

3.1创建一个函数

语法:
var fun = new Function();
可以将要封装的代码以字符串的形式传递给构造函数

封装到函数中的代码不会立即执行,在函数调用时执行

语法:
函数对象();

当调用函数时就会按照顺序执行

例:
var fun = new Function("console.log('hello world');");//注意单引号
	fun();

函数和其他对象相比拥有一个优点:可以封装代码;

3.2使用函数声明来创建一个对象

语法1:
function 函数名(){
语句…
}
语句2:
function 函数名(形参1,形参2、、、形参N){
语句…
}

例:
function fun(){
		console.log("hello world");
		}
		fun();
3.3使用函数表达式来创建一个函数

语法:
var 函数名 = function(){
语句…
}

例:
var fun = function(){
		console.log("hello world");
		}
		fun();
var fun = function(a,b){//a,b为形参
		var b = a+b;
		console.log("b="+b)
		}
		fun(1,4); //1,4为实参

注意事项:

  1. 调用函数时解析器不会检查实参的类型,所以要注意是否接受到非法参数
  2. 解析器不检查数量,多出的实参会被忽略,如果实参数量少于形参数量则对应形参将是definded,输出则为NaN;
3.4函数的返回值

//可以使用return 来设置函数的返回值
语法:
return 值;

return 后的值作为该函数的执行结果返回可以定义一个变量接收该结果

例:
var fun = function(a,b){
			var b = a+b;
			return b;//将结果返回
			}
			var result = fun(1,4);//接收返回值
			console.log(result);

注意:

  1. 在函数中return后的语句不会被执行
  2. 如果return语句为空则返会undefined
  3. 不写return也返回undefined
  4. turn可以返回任意类型函数

注意:实参可以是任意类型也可以是一个对象,当参数过多时可以封装到一个对象中,然后通过对象传递

例:
var user = function(msg){							//形参可以随便取值,实参就是要引用的对象
		console.log(msg.name+","+msg.age+","+msg.gender+","+msg.address); 
		//注意哦,这里需要调用对象的属性哦!
		}
	var message = {
		name : "Tom",								//注意是冒号,逗号!
		age : 20,
		gender:"男",
		address:"安徽合肥"
		}
		user(message);

版权声明:本文为Nana_0408原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。