为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript深入浅出

Bosn 资深架构师
难度中级
时长 5小时28分
学习人数
综合评分9.60
492人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.5 逻辑清晰
我觉得讲的很好,如果直接告诉你原理,你可能没印象,原理要自己去找,自己去推敲,你才能真正明白。老师讲的全是干货,每一句都要耗费精力去理解,所以会觉得学起来很累,有些视频就简单多了,挺起来不累,但是你能学到多深呢?
老师讲的很好,但是真的太枯燥了,这是典型的知识精华学习,没有任务驱动,项目驱动,全是知识点,学的快吐了,但是要坚持,不多了不多了,还有几章,555555,学完就能去搞点前端项目了,话虽如此,干货满满,现在再去看别人写的技术帖子,都能看得懂了。感谢老师。
当通过new关键字来操作函数MyClass时,MyClass中的代码this所以会指向一个空对象,而不是指向window,这个空对象的原

型会指向MyClass.prototype,同时this.a等于为空对象添加了一个属性a并赋值为10,当MyClass中代码走完后,就要返回一

个值,但foo函数体内并没有定义return,所以默认返回this,而this指向的这个对象最终会赋值给obj。最后我们会看到obj

就是一个原型指向MyClass.prototype且包含了值为10的属性a的对象。
以下是我对构造器中的this的结论:通过new关键来操作MyClass函数时,MyClass中的this所以会指向一个空对象,而不是window,该空对象的原型会指向foo.prototype同时this.a等于为空对象添加了一个属性a并赋值为10,当MyClass中代码走完后,就要返回一个值,但因为MyClass中没有定义return,所以默认返回this。最后obj会接收MyClass返回来的this,而这个this就是原型指向foo.prototype同时包含一个值为10的属性a的对象。
老师讲的非常好,语速很快,同学们在学习的时候一定要反复听,甚至可以用记事本把老师说的话都记下来然后仔细推敲,老师讲的大部分内容逻辑都是十分通常的,然后自己一定要把所思所想付诸于代码,通过代码去验证老师所讲和自我所思,这样才会确定自己是不是真的听明白了,所以学习实际上是一种交互的行为,而不是单方面的讲以及单方面的听,一定要跟老师的代码互动起来,这样才能真正学明白。目前为止,我觉得都很通常,希望后面也能愉快的继续下去,直到学完。不知道学完这个,JS能达到什么样的水平呢?有没有人解答一下。
5分29秒:那么这一点上和一般的对象属性作为函数对象也是类似的
。这句话是不是说错了?有点不明所以。老师是不是想说,那么这一点上和一般的函数对象作为对象属性也是类似的。我感觉是说混了。
简单的说吧,函数声明会被优先处理这一特点跟java的static很像,当然,底层是不是一回事我就不清楚了。而函数表达式就先声明一个函数变量,再给它赋值,所以它会被当作一个普通的变量来处理吧。
我为什么觉得很好懂,是因为java基础的原因吗,手动滑稽。
2:59秒,dei肋特运算符,很6.
3:03秒的dei肋特运算符还行,手动滑稽。
好吧,我现在终于明白了,原来countMap1 = {},这玩意不是数组啊,我当成java语法了,原来这是js里的对象啊,哈哈哈。明白了,把数据类型当作key,把出现次数当作value,然后对比每一种数据类型是否存在以及出现次数是否相同。好吧,确实很清奇。比我的方法要炫酷,哈哈。
我再换一种说法吧,前半部分我跟老师是一样的,后面的处理不同,我是排序再判断,老师是不排序,但是通过同步检查来达到目的,非常清奇的思路。意思就是,你有5个苹果1个梨,我有3个苹果2个梨。现在老师说,拿出苹果,然后我拿出1个,你拿出1个,然后老是说拿出梨,我拿出1个,你拿出1个,老师再说拿出梨,我能拿,但是你拿不出来,这就表示我们手所持的水果是不同的了。
第三种方法就是记录法的变种,也是老师的解法,我的思路是对记录下来的string数组进行排序,这样两个数组的类型一一对应起来,然后判断起来就方便了。老师的解法是不进行排序,而是通过排除法,比如a记录的是string number boolean,b数组记录的是boolean number string。在不排序的情况下如何对比呢?那就先判断a数组中有没有string,如果有再判断b数组有没有,如果b数组也有。就进行下一步。以此类推
其实解决这题有很多种思路,有一共通点,就是每个元素你都得判断,既然你都要判断,那么判断的形式就会出现不同了,所以接下来就是不同点,第一种就是排除法,拿着a数组的元素去b数组找,找到了就删掉,但我觉得这种方法有点笨。第二种就是记录法,既然都遍历了所有元素,那么把它们记录下来,然后对照一下就知道了。还有第三种吗?欢迎留言。
顺便说一下我的解题思路吧,开始想的很简单,先对两个数组排序,然后循环对比类型,这种思路流产了,因为boolean会解释为0和1,这会跟number类型混在一起,导致排序之后的数据类型并不能一一对应起来。第二种思路就很简单了,遍历两个数组的所有元素并判断所有类型,然后所有的类型以string字符串的形式添加到一个新的数组,然后这个数组里就是源数组的所有数据类型的信息,然后对这个string类型的数据进行排序,就不会出现第一种思路中出现的问题了,最后直接对比两个数组就好了,因为它们都是string类型。
课程须知
1.您至少学习了本站“JS入门”、“JS进阶”两门基础课程。 2.如您具备一定实践经验对学习有很大帮助。 3.如您没有脚本编程开发经验,学习过程有可能会受挫部分内容或示例代码,请“暂时略过不懂的部分,后面章节会阐述”,当然想透彻学习,还需大量实践来体会知识的内涵。
老师告诉你能学到什么?
结合实例,深入解析以下知识内容: 1. 数据类型、表达式和运算符、语句; 2. 对象、数组、变量、函数; 3. this、闭包和作用域; 4. OOP; 5. 正则与模式匹配。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消