JavaScript02
一、JavaScript对象创建对象添加属性读取属性修改属性删除属性对象字面量二、JavaScript函数创建函数调用函数立即执行函数三、JavaScript方法四、JavaScript作用域全局作用域函数作用域五、this六、构造函数七、原型prototype 一、JavaScript对象
对象属于一种复合的数据类型,在对象中可以保存多个不同数据类型的属性
对象的分类:1.内置对象 由ES标准中定义的对象,在任何的ES的实现中都可以使用 2.宿主对象 由JS的运行环境提供的对象,目前来讲主要指由浏览器提供的对象 如: BOM DOM 3.自定义对象 由开发人员自己创建的对象 创建对象
var obj = new Object(); //var 对象名 = new Object() 使用new关键字调用的函数,是构造函数constructor,构造函数是专门用于创建对象的函数 添加属性
在对象中保存的值成为 属性 obj.name = "zby"; //对象.属性名 = 属性值 obj["123"] = 789; //对象["属性名"] = 属性值 属性名不强制要求遵守标识符规范,但是使用特殊的属性名时只能采用 对象["属性名"] = 属性值 的声明方式 在[ ]中可以直接传递一个变量,这样变量值是多少就读取哪个属性 读取属性
obj.name; //对象.属性名 读取对象中没有的属性,不会报错,会返回undefined obj["123"];//对象["属性名"]
in运算符 :检查一个对象及其原型中是否含有指定的属性 如果有则返回true,否则返回false "name" in obj; //"属性名" in 对象
hasOwnProperty() 检查对象自身中是否含有该属性 修改属性
obj.name = "tom" //对象.属性名 = 新值 删除属性
delete obj.name //delete 对象.属性名 对象字面量
用于创建对象 var obj = {};
使用对象字面量时可以在创建对象时,直接指定对象中的属性 var obj = {name:"zby"}; //var 对象={属性名:属性值,属性名:属性值……} 二、JavaScript函数
函数也是一个对象,可以封装一些功能(代码),在需要时可以执行这些功能(代码) 创建函数函数对象 var fun = new Function(); 使用typeof检查函数对象时,会返回function 函数声明 function 函数名([形参1,形参2……]){ 语句; } 函数表达式 var 函数名 = function([形参1,形参2……]){ 语句; } 调用函数
fun(); //函数对象() 调用函数时,函数中封装的代码会按照顺序执行,使用函数的返回值
调用函数时解析器不会检查实参的类型 也不会检查实参的数量,多余实参不会被赋值。
break->退出当前的循环 continue-->跳过当次循环 return-->结束整个函数 立即执行函数
(function(形参1.形参2……){ 语句; })(实参1,实参2……)
函数定义后,立即被调用,往往只会执行一次 三、JavaScript方法
如果一个函数作为一个对象的属性保存,我们则称这个函数是这个对象的 方法 。 调用函数就是调用对象的方法(只是名称上的区别,实质上没有区别) var obj = new Object(); obj.name="zby"; obj.sayName = function(){ console.log(obj.name); } obj.name(); //调方法
function fun(){ console.log(obj.name); } fun(); //调函数
使用for in语句,枚举对象中的属性 for (var 变量 in 对象){ } 每次执行时,将对象中的一个属性名称赋值改变。 四、JavaScript作用域
作用域:一个变量作用的范围 全局作用域直接编写在script标签中的js代码,都在全局作用域中。 全局作用域在页面打开时创建,在页面关闭时销毁。在页面任意部分都可以访问到 在全局作用域中有全局对象window,可以直接使用。 window代表浏览器的窗口,由浏览器创建。 在全局作用域中,创建的变量都会作为window对象的属性保存 创建的函数都会作为window对象的方法保存 变量的声明提前:使用var关键字声明的变量,会在所有代码执行之前被声明 函数的声明提前:使用函数声明形式创建会在所有代码执行之前就被创建 函数function函数(){} 函数作用域调用函数时创建函数作用域,函数执行完毕以后,函数作用域销毁 每调用一次函数就会创建一个新的函数作用域,他们之间相互独立 在函数作用域中可以访问到全局作用域的变量,在全局作用域中无法访问到函数作用域的变量 在函数作用域操作一个变量时,先在自身作用域中寻找,若是没有则在上一级作用域中寻找,若全局作用域中仍未找到则报错ReferenceError 在函数中访问全局变量可以使用window对象 全局作用域中适用的变量的提前声明和函数的提前声明在函数作用域中仍适用 函数中不使用var声明的变量都会变为全局变量 五、this
解析器在调用函数每次都向函数内部传递一个隐含参数this this指向一个对象,这个对象是函数执行的上下文对象 根据函数的调用方式不同,this指向不同的对象以函数形式调用时,this永远都是window以方法形式调用时,this就是调用方法所对应的对象以构造函数形式调用时,this就是新创建的那个对象 六、构造函数构造函数就是一个普通的函数,创建方式和普通函数没有区别 构造函数习惯上首字母大写 普通函数是直接调用,构造函数需要使用new关键字调用
function Person(){ } var per = new Person(); //构造函数调用 var per0 = Person(); //普通函数调用
构造函数执行流程: 立刻创建一个新的对象 将新建的对象设置为函数中的this,在构造函数中可以使用this引用新建的对象 逐行执行函数中的代码 将新建的对象作为返回值返回
使用同一个构造函数创建的对象,我们称为一类对象,也将一个构造函数称为一个 类 。我们将通过一个构造函数创建的对象,称为是该类的 实例 。
使用instanceof可以检擦一个对象是否是一个类的实例 对象 instanceof 构造函数 //是返回true;否返回false 七、原型prototype
解析器会向每个函数中添加一个属性prototype,prototype属性对应着一个对象,这个对象就是我们所谓的 原型对象 。
原型对象就相当于一个公共区域,所有同一个类的实例都可以访问到这个原型对象,我们可以将对象中共有的内容,统一设置到原型对象中。
当我们访问对象的一个属性或方法时,先在对象自身中寻找,如果没有则去原型对象中寻找。
当函数作为普通函数调用时,没有任何作用 当函数作为构造函数调用时,她所创建的对象中都会有一个隐含的属性 指向该构造函数的原型对象,我们可以通过 __proto__ 来访问该属性
function MyClass(){ } MyClass.prototype.a = 123; var mc = new MyClass(); console.log(MyClass.prototype == mc.__proto__) //true
不怕超时,福州女外卖员路边热舞,婀娜多姿,让路人一脸懵圈女外卖员不送餐却在路边热舞,姿势妖娆,让辛苦的男骑手情何以堪周末,福州天气好,于是便去了商场逛街,正值中午12点,在商场广场的角落里,看到了一位身穿黄色外卖工作服,头戴黄色头盔的女
5000亿新能源巨头深夜减持超20亿,汽车整车赛道还能走多远?一合伙创始人套现21亿28日晚间,比亚迪发布公告,公司持股3。31的董事夏佐全拟减持不超过1200万股A股,占其所持A股总股数比例不超过12。69,占公司总股本不超0。42。按周五
零跑C11一款有备而来的新能源汽车随着新能源汽车产品的不断涌入,电车市场已经接近饱和状态,如果一款新能源汽车想要在饱和的市场中取得一席之地,一定要有备而来,这样才能更快地在市场中站稳脚跟,成为人们关注的那一款汽车,
红外热成像的正确使用方法凯茉锐红外热成像利用红外探测器和光学成像物镜接受被测目标的红外辐射能量分布规律,并将其反射到红外探测器的光敏元件上,从而获得红外热像,对应于物体表面的热分布场。一般来说,红外热成像就是将
有家,有她,还有TA,完美生活该是这样完美生活不会被物质所困,也不会有出行的烦恼。幸福家庭的标配,离不开稳定的居所,身边的爱人,还有能说走就走的自由编辑搜图请点击输入图片描述和很多朋友一样,我们家买车就图出行方便,选择
兴趣认证,想获得四个优质答案推荐,需要满足什么条件?今日头条官方给出的回答秘籍一选择正确的问题1回答以下问题能获得高阅读量有讨论价值的问题例如为什么老干妈没有遇到强劲的对手优质回答较少的问题选择优质回答较少的问题更容易获得推荐。2不
打工人超长带妆,皮肤状态堪忧,是时候做个面部护理啦前些日子国家刚刚出台了三胎政策,办公室里的同事也都在热议,大家纷纷表示,平时工作起来忙的连饭都吃不上,就连谈恋爱的时间都没有,婚都没结,哪里能考虑到生孩子的问题啊。现在的年轻人们即
大卖背后,realme真我GT大师探索版做对了哪些事情?realme真我GT大师探索版开售了,可能令大多人意想不到的是它取得了非常好的成绩1秒破亿以及销量销售额双冠军。1秒破亿这个成就听起来非常震撼,它的数据来自realme真我的正规开
为什么杭州只要三环?答案在这里很多人都知道,北京有七环成都有六环,为什么杭州只要三环?我们听听专家怎么说!8月12日,杭州召开杭州都市区中环建设推进动员会,在十四五建成杭州市区中环和杭州二绕。杭州中环目前建成的
安全模式到底有什么用,不同系统怎么进入安全模式?答案都在这电脑蓝屏流氓软件的克星,方法简单,快速上手,居家旅行杀人灭口必备良药,走过路过,不要错过吖!每次电脑出问题的时候,问工程师小哥哥,他们都要进入安全模式看一下,安全模式到底犯了什么错
设计模式16状态模式状态模式当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不