范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

JavaScript03基础部分2。3

  042 Introduction to Objects
  本讲主要学习对象。
  视频加载中...
  先复习下数组,定义jonasArray数组。const jonasArray = [ 	"Jonas", 	"Schmedtmann", 	2037 - 1991, 	"teacher", 	["Michael", "Peter", "Steven"] ];
  数组中每一项内容,不能用名字来引用,只能通过数组索引来使用。通过另外一种数据结构对象可以解决。对象是通过键值对来匹配的。
  定义jonas对象。const jonas = { 	firstName: "Jonas", 	lastName: "Schmedtmann", 	age: 2037 - 1991, 	job: "teacher", 	friends: ["Michael", "Peter", "Steven"] };
  通过数组和对象的定义的形式上比较,它们的区别有两点。方括号变成花括号,数组元素前多了冒号和名称。
  在对象定义中,冒号左边称为键,冒号右边称为值。
  对象花括号内键称为对象的属性,值称为对象的属性值。
  数组和对象最大的区别在于,对象内的属性没有顺序约束。而数组必须保持顺序来使用。
  043 Dot vs. Bracket Notation
  本讲主要学习对象中的点和括号作用。
  视频加载中...
  上节课,我们学习了对象的定义。
  const jonas = { 	firstName: "Jonas", 	lastName: "Schmedtmann", 	age: 2037 - 1991, 	job: "teacher", 	friends: ["Michael", "Peter", "Steven"] }; console.log(jonas);
  在控制台输出:{firstName:"Jonas", lastName:"Schmedtmann", age: 46, job:"teacher", friends:Array(3)}
  展开内容:age:46 firstName:"Jonas" friends:(3)["Michael", "Peter", "Steven"] job:"teacher" lastName:"Schmedtmann"
  对象的属性按照字母顺序排序展示。
  从对象中获取属性值使用点表示法。
  jonas.lastName可以获取属性值Schmedtmann。
  从对象中获取属性值使用方括号表示法。
  jonas["lastName"]可以获取属性值Schmedtmann。
  在对象中使用方括号,方括号内可以用表达式来进行复杂地操作。const nameKey = "Name"; console.log(jonas["first" + nameKey]); console.log(jonas["last" + nameKey]);
  firstName和lastName属性名称,通过字符串拼接完成。
  在控制台输出:Jonas Schmedtmann
  对于点运算符,无法像方括号中使用表达式,必须使用确定的属性。
  const interestedIn = prompt("What do you want to know about Jonas? Choose between firstName, lastName, age, job, and friends"); console.log(interestedIn);
  在控制台弹出窗口,输入job,则控制台输出:job
  使用点运算符,看下jonas.job的结果。console.log(jonas.interestedIn);
  在控制台弹出窗口,输入job,控制台输出:undefined
  控制台输出结果与预期不符。这是为什么呢?
  因为jonas.interestedIn只能识别为对象jonas匹配interestedIn属性,匹配不到,所以提示undefined。
  使用点运算符不会把interestedIn识别为用户输入的值job。
  这种情况需要使用方括号来操作。
  console.log(jonas[interestedIn]);
  在控制台弹出窗口,输入job,控制台输出:teacher
  如果在弹出窗口内输入的值与jonas内的属性相匹配,则得到对应属性值,否则得到undefined值。
  根据undefined为假的情况,可以作为判断来输出一些说明。const interestedIn = prompt("What do you want to know about Jonas? Choose between firstName, lastName, age, job, and friends"); if (jonas[interestedIn]) { 	console.log(jonas[interestedIn]); } else { 	console.log("Wrong request! Choose between firstName, lastName, age, job, and friends"); }
  在控制台弹出窗口,输入location,控制台输出:Wrong request! Choose between firstName, lastName, age, job, and friends
  在控制台弹出窗口,输入job,控制台输出:teacher
  接下来,学习向已知对象中添加属性和值。jonas.location = "Portugal"; jonas["twitter"] = "@jonasschmedtman"; console.log(jonas);
  在控制台输出:age:46 firstName:"Jonas" friends:(3)["Michael", "Peter", "Steven"] job:"teacher" lastName:"Schmedtmann" location:"Portugal" twitter:"@jonasschmedtman"
  044 Object Methods
  本讲主要学习对象的内置方法this的使用。
  视频加载中...
  在对象中有键值相对应。对于值,也可以使用函数。const jonas = { 	firstName: "Jonas", 	lastName: "Schmedtmann", 	birthYear: 1991, 	job: "teacher", 	friends: ["Michael", "Peter", "Steven"], 	hasDriversLicense: true, 	calcAge: function (birthYear) { 		return 2037 - birthYear; 	} }; console.log(jonas.calcAge(1991));
  在控制台输出:46console.log(jonas["calcAge"](1991));
  在控制台输出:46
  对于函数值的键值对,对象可以通过点运算符和方括号来操作对象属性。
  在对象使用点或者方括号访问calcAge函数的时候,传入的参数1991实际上在对象中已经存在,那么在对象的calcAge函数中,直接调用1991所对应的属性即可。
  const jonas = { 	firstName: "Jonas", 	lastName: "Schmedtmann", 	birthYear: 1991, 	job: "teacher", 	friends: ["Michael", "Peter", "Steven"], 	hasDriversLicense: true, 	calcAge: function ( ) { 		console.log(this); 		return 2037 - this.birthYear; 	} }; console.log(jonas.calcAge());
  在控制台输出:{firstName:"Jonas", lastName:"Schmedtmann", birthYear:1991, job:"teacher", friends:Array(3), ...} 46
  在对象函数中,this在控制台打印出来的信息是整个对象内容,this代表整个对象,所以this.birthYear指的是1991。
  在对象内部使用this来代表整个对象,仍然是为了简化代码,减少不必要的重复操作。如果把this替换为对象名称jonas,那么当对象名称改变的时候,对象内的对象名称也要更新,而使用this无需多余的操作来同步更新。
  对于对象内的函数调用,如果重复使用,会多次重复计算,有没有方法,可以减少计算量,只计算一次?
  当然可以,将函数的计算结果保存在对象新属性中,当使用的时候直接检索。
  const jonas = { 	firstName: "Jonas", 	lastName: "Schmedtmann", 	birthYear: 1991, 	job: "teacher", 	friends: ["Michael", "Peter", "Steven"], 	hasDriversLicense: true, 	calcAge: function ( ) { 		this.age = 2037 - this.birthYear; 		return this.age; 	} }; console.log(jonas.calcAge()); console.log(jonas.age) console.log(jonas.age) console.log(jonas.age)
  在控制台输出:46 46 46 46
  在函数体,通过this.age给对象jonas增加新属性age。后续就可以重复使用age属性,不必再使用函数调用。
  挑战一句话,通过调用对象jonas内的属性来完成。
  const jonas = { 	firstName: "Jonas", 	lastName: "Schmedtmann", 	birthYeah: 1991, 	job: "teacher", 	friends: ["Michael", "Peter", "Steven"], 	hasDriversLicense: true, 	calcAge: function () { 		this.age = 2037 - this.birthYear; 		return this.age; 	}, 	getSummary: function () { 		return `${this.firstName} is a ${this.calcAge()}-year old ${jonas.job}, and he has ${this.hasDriversLicense ? "a" : "no"} driver"s license.` 	} }; console.log(jonas.getSummary());
  在控制台输出:Jonas is a 46-year old teacher, and he has a driver"s license.
  045 Coding Challenge #3
  本讲主要完成编码练习。
  视频加载中...Let"s go back to Mark and John comparing their BMIs! This time, let"s use objects to implement the calculations! Remember: BMI = mass / height ** 2 = mass / (height * height). (mass in kg and height in meter)
  1. For each of them, create an object with properties for their full name, mass, and height (Mark Miller and John Smith)
  2. Create a "calcBMI" method on each object to calculate the BMI (the same method on both objects). Store the BMI value to a property, and also return it from the method.
  3. Log to the console who has the higher BMI, together with the full name and the respective BMI. Example: "John Smith"s BMI (28.3) is higher than Mark Miller"s (23.9)!"
  TEST DATA: Marks weights 78 kg and is 1.69 m tall. John weights 92 kg and is 1.95 m tall.
  GOOD LUCK
  本讲编码练习是使用对象来实现2个人的BMI的计算和比较。
  1、创建对象,属性包含名称,体重,身高。
  2、在对象中创建calcBMI方法计算BMI,存储BMI值到一个属性。
  3、在控制台输出谁的BMI高,信息包含名称和BMI值。
  编码实现参考如下。
  const mark = { 	fullName: "Mark Miller", 	mass: 78, 	height: 1.69, 	calcBMI: function () { 		this.bmi = this.mass / this.height ** 2; 		return this.bmi; 	} }; const john = { 	fullName: "John Smith", 	mass: 92, 	height: 1.95, 	calcBMI: function () { 		this.bmi = this.mass / this.height ** 2; 		return this.bmi; 	} }; mark.calcBMI(); john.calcBMI(); console.log(mark.bmi, john.bmi); // "John Smith"s BMI (28.3) is higher than Mark Miller"s (23.9)!" if (mark.bmi > john.bmi) { console.log(`${mark.fullName}"s BMI (${mark.bmi}) is higher than ${john.fullName}"s BMI (${john.bmi})`) } else if (john.bmi > mark.bmi) { console.log(`${john.fullName}"s BMI (${john.bmi}) is higher than ${mark.fullName}"s BMI (${mark.bmi})`) }

去年惊艳足球圈的威尼斯FC,又出了新球衣名城弱旅的惊艳球衣上个休赛期,C罗梅西两位足坛顶流纷纷转投新东家。按照常理来说,这二人本该主宰2021年夏天的球衣市场,万万没想到,即便如此还是杀出了一匹黑马威尼斯FC(Venez苹果iPhone14系列价格将比13系列贵100美元由于高额的进口关税消费税费用和其他因素,苹果iPhone在国内的价格总是高于美国市场。买家为同样的设备支付的费用比其他国家高。一份新的报告显示,等待购买今年iPhone的买家甚至可创作本开始大火!除了苹果,华硕是Win阵营更好的选择近两年来,随着科技的不断创新和用户使用场景的变化,不少数码产品之间的界限开始越来越明确,甚至在传统单属性的产品上诞生了许多赋予不同需求属性的新产品,成为了大众愿意购买的新宠,比如上苹果汽车大动作,想出头的心太明显!时至今日,关于苹果造车的消息从来没有断过,但从未得到官方证实。这么长时间以来苹果汽车始终不见真面目,大家一度怀疑苹果公司决定放弃这块难啃的骨头。不过最近,TheInformatio30岁张康阳带娃出街,二人开玩具跑车兜风,深夜与陌生女子逛街在足球界,有不少明星选手都迎来了自己的感情生活,现在非常的甜蜜幸福。但还有一些选手仍旧处于单身,默默奋斗自己的事业。作为足球掌舵人的张康阳引起了网友的关注,近日网友发现30岁的张康CBA夏季联赛张祖铭159纪卓16分鄢手骐1410青岛男篮大胜辽宁北京时间7月15日,CBA夏季联赛今日开打,辽宁男篮今日对阵青岛男篮。青岛男篮从首节就牢牢掌握局面,除了第三节短暂断电之外,青岛男篮在大部分时间都大比分领先。最终青岛8856大胜辽还真是机不可貌相,越用越惊喜的红米K50一款有着塑料边框,第一眼看过去觉得廉价感十足的红米K50,从上市到现在那都是被很多人喷的一文不值,但它真的就一文不值吗?下面给大家说一下我使用过后的感受!在刚拿回来打开的时候给我的终结系列!202122梅罗博物馆双签1编球星卡现身国内最新收藏新闻最热体育大瓜,偶藏带你回顾上周体育收藏品资讯!每日新鲜资讯可移步偶藏APP首页发现板块查看。阿根廷国家队发布2022世界杯主场球衣阿迪达斯携手阿根廷足协(AFA)共同发iQOO10系列发布会定档7月19日!首发200W超快闪充为一大看点随着7月19日iQOO新品发布会的临近,数码爱好者们对于旗舰新机iQOO10系列的期待程度也不断增加。这款来自数字系列的最新迭代机型,也成为近期最受关注的安卓旗舰之一。据官方宣传,曝iQOO10系列下周正式发布,iQOO9跌至乞丐价,创低历史记录此前,iQOO手机官宣,iQOO10系列将于7月19日正式发布。随着时间的临近,iQOO手机官方也陆续公布了新机信息。iQOO手机官方宣布,iQOO10系列成为2022使命召唤手游雷军8月份将携小米工程样车亮相,开启系列测试Tech星球7月15日消息,据新浪科技,小米造车即将迎来一个重大节点在8月的一场公开活动上,雷军将会带着小米的工程样车亮相,随后便开启一系列测试。小米的员工及合作伙伴还透露了一个关
上海城隍庙,数百年来香火鼎盛,你知道城隍神到底是谁吗?一直在路上,发现美,分享快乐!豫园商圈,是游玩上海的必打卡景点,主要是因为在这里可以感受到老上海的文化气息,特别是其中的城隍庙,凭借其深厚的历史底蕴,吸引着游客的目光。上海是一个国科学睡眠愿你每天都睡好睡眠质量的好坏与人体健康密切相关你会睡吗?今天小编带来10个关于睡眠的知识希望对你有帮助01hr遵循昼夜节律让我们睡眠效果更好所谓昼夜节律就是到了某个特定时间段我们会自然而然想做什气分病与血分病久病入络,换个说法气病及血。即初起发病于气分,时间久了病及血分。麻木是由气及血的端始症状,此时及时治疗可以杜绝殃及血分。不仁便是血分病已成。血分病的其他症状刺痛疼痛点固定不移,夜痛你行你上啊!波切蒂诺发布会回怼记者你这么懂怎么不来取代我?根据法国TYCSports的消息,巴黎主帅波切蒂诺在新闻发布会上与记者发生了不愉快的一幕,在被问到多个尖锐的问题时,波切蒂诺显得有些生气,用讽刺的语气回怼了记者。新闻发布会上,波切危矣!紧急约谈许家印,广州队回天乏术了恒大集团一则公告彻底引发社会关注,这也是恒大集团彻底摊牌无法履约担保,而随着这则公告发布做为恒大旗下的体育板块的广州队前景暗淡,或者说广州队已经回天乏术危矣!北京时间12月3日,中范伟娇妻居然这么美,两人携手31年,这才是娱乐圈的真爱1990年,28岁的范伟在一次相亲中认识了一位美女护士,对她一见钟情,但奈何自身长得有点磕碜,好在女方有点眼瞎,最终还是被他抱得了美人归。多年后,对于妻子的眼瞎,范伟曾自我调侃地总故土难离,落叶归根漂泊在外,总爱思念故乡,人生故土难离,落叶归根,一想到家,心情便久久不能平静。这些对我来说不得不那么刻骨铭心,只好在一个人的世界里默默的等待,等待那个熟悉的身影出现这些熟悉的场景,原花青素是维护健康的营养物质之一,不必吃药,补充5种水果即可原花青素伴随着健康养生的观念越来越深入人心,许多老年人开始通过食疗的方法来改善自身健康,蓝莓枸杞黑枸杞等水果被很多人认为是养生保健的佳品,其实这是因为这些水果中富含大量的原花青素,吃核桃养生健康,带皮吃更营养,3种错误吃法,看看自己中招没?提到坚果类的食物,大家的第一反应往往是花生,如果再想一想,很多人就会想到核桃。一直以来,核桃都是公认的营养健康食物,且具有聪明果,长寿果一类的美称。且核桃的营养价值,是经过一系列科九阴真经3D最全面的武当,经脉应该如何选择?说起武当派,它不仅仅是我们国人最为熟悉的门派,而且给我们的印象就是那种不食人间烟火仙风道骨那种感觉,即使是到了游戏中,武当这个门派往往都是比较强的,在九阴真经3D中表现的也非常完善秋萍退休后一人一车自驾游92天,水果中的巨无霸今天去东兴市马路镇溜达溜达,顺着乡道慢慢游走,两边的植被非常茂盛,绿油油的一片一片,充满了生机,忽然发现一颗菠萝蜜树,以前也吃过菠萝蜜,只是无法想象这么一个水果中的巨无霸,是长在一