2.6对象和函数

1.javascript对象
6种数据类型:
基本数据类型(5种)
Undefined类型
Null类型
Boolean类型
Number类型
String类型
复杂数据类型(1种)
Object类型
对象:大括号定义的无序的数据集合,由键值对构成,键与值之间用冒号分隔,大括号末尾用分号表示对象定义结束
语法:var obj={key1:value,key2:value};
ps:键值对间用‘,’分开
(1)键名(属性)(2)键值(属性值:可以是任何数据类型)
ps:若一个属性的值是函数,称这个属性为方法。
(3)对象的创建方式
a.直接使用大括号创建对象
b.使用new命令生成一个Object对象的实例
c.使用Object.create方法创建对象
var obj1={};
var obj2=new Object{};
var obj3=
(4)对象属性的读写
a.读取属性
语法:var obj={key:value};
①obj.key;②obj["key"];
b.写入属性
点运算和中括号运算都可以为对象的属性赋值,无论对象是否存在该属性
小结:【中括号】和【点符号】的区别
a.【】可以用纯数字来作为对象的属性,.不能
b.【】可以使用【】保存的内容来作为对象的属性,.不能
c.中括号可以用JS的关键字和保留字来作为对象的属性,.不能
d.【】总是可以代替.,而.不能总是代替【】
思考角度:从后台拿到数据后如何处理?怎么拿到属性,有哪些方法,有什么区别?等等
(5)对象属性的操作
①【obj.keys()】获取对象的所有属性
思考!赋值去重问题
②【delete】从对象中删除一个属性
语法:delete obj.property;
删除的是属性以及属性值(即一对键值对);
返回值是一个布尔值(成功:ture;失败:false)
【注意】ps:若删除一个不存在的属性,同样返回正确!
思考:如何避免,令你删除的属性存在!

③【in】检查对象是否包含一个属性
语法:'key'in obj
ps:检查的是键名,而不是键值。存在返回ture,不存在返回false
【for in】遍历的是对象的属性名,而不是属性值
④【with】可以同时对多个属性进行操作(es6已弃用)
语法:with(obj){key1:value;key2:value}
ps:只能对已经存在的属性进行修改,无法修改不存在的属性
⑤*(了解)对象的引用
若不同的变量指向同一个变量,那他们都称为这个对象的引用
即这些变量指向同一个内存地址
2.javascript函数
结论:在函数外部关心它能做什么
在函数内容关心怎么做
语法:funciton函数名(函数参数1,参数2,...){
函数内容语句//函数体
}
ps:函数只定义,只是一个机器,并不能执行,因此必须写执行函数.
(1)函数的声明
【function命令】
语法:function 函数名(参数1,参数2,...){函数体}
【函数表达式】
语法:var 变量=function(参数1,参数2,...){函数体}
【Function构造函数】
语法:var 变量= new Function();
思考:重复写(声明)一个重名的函数会发生什么?(覆盖)
(2)函数的调用
编译过程中发生变量声明的提升
C语言~编辑成机器语言~编译成01
函数~unicode编码
(3)函数的类型
名词解释:
返回值:【函数执行结束后】返回到【原本程序中函数所在的位置】用来代替函数的【结果】,通常用return来实现
形式参数:形参只用来在函数内部使用,在函数外部形参失效。通常形参不用var声明,直接写变量名即可(占位用的)
实际参数:在函数调用的时候,传入函数内实际生效的参数
①无参无返回值
②无参有返回值
③有参无返回值
function fun3(num1,num2){
console.log("这是有参无返回值函数,两个参数分别为:"+num1+'---'+num2);
}
function(3,2);
④有参有返回值
function sum(num1,num2){
var temp=num1+num2;
return temp;
}
var result=sum(10,20);
console.log(result);
(4)函数的作用域
作用域(scope)指的是变量存在的范围,js只有两种作用于:
全局作用域→全局变量
函数作用域→局部变量
(5)函数的补充说明:
a.ECMAScipt规定:不能在非函数的代码快中声明函数
理解:if(a>0){
function func(){}//wrong way!
}
b.可以使用name属性来获取函数名
c.可以使用length属性来获取函数参数的个数
d.函数中还有一种特殊的函数,叫自执行函数
格式:(function(){}())或者(function(){})()
如有纰漏,不吝赐教~end
与其苟延残喘,不如从容燃烧!~
原文地址:https://www.cnblogs.com/ilaozhao/p/6574173.html