重学前端
程劭非(winter)
前手机淘宝前端负责人
105348 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 57 讲
开篇词+学习路线+架构图 (3讲)
重学前端
15
15
1.0x
00:00/00:00
登录|注册

期中答疑 | name(){}与name: function() {},两种写法有什么区别吗?

String到Number的转换
jQuery与Vue
前端进阶方向
前端学习
DOM树元素位置改变
浏览器鼠标事件识别
JavaScript的call stack size
import引用获取最新值
词法环境与词法作用域
Promise中的settimeout顺序
异步执行示例
JavaScript中Number安全整数
对象中name(){}name: function() {}的区别
JavaScript中的"类"
闭包
期中答疑 | name(){}与name: function() {},两种写法有什么区别吗?

该思维导图由 AI 生成,仅供参考

你好,我是 winter。
随着专栏进度过半,我们专栏的评论区留言量也日渐上涨。除了大家的小作业和学习心得,我还看见很多同学们在学习过程中提出了不少问题。
这其实是一种很好的学习方式,通过问题,我们可以对这部分知识记得更为牢固。
所以,我鼓励你在阅读文章之外,多思考,多提问,把自己不懂的地方暴露出来,及时查缺补漏,这样可以更好地吸收知识。同时,你也可以通过回答别人的问题来检验自己对知识的掌握情况。
我们一起来看看,大家都提出什么问题。
1. 老师你好!我语义化标签用得很少,多数用到的是 header、footer、 nav 等语义化标签,想问老师 section 和 div 混合使用,会不会效果不好呢?
答:不会效果不好的,因为本来就是这么用的。遇到不确定的情况,请千万不要乱用标签,用 div 和 span 就好。
2. 我一直看见闭包这个词,但是一直也没有弄清楚它是什么东西,老师可以简单概括一下什么是闭包吗?
答:你可以这样理解,闭包其实就是函数,还是能访问外面变量的函数。
3.“事实上,JavaScript 中的“类”仅仅是运行时对象的一个私有属性,而 JavaScript 中是无法自定义类型的。”
文中说“类”是私有属性,可以具体表现是什么,不是很能理解具体含义?
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

JavaScript中的函数定义方式`name(){}与name: function() {}`在使用上基本没有区别,但在函数的name属性上有所不同。第一种方式定义的函数,其name属性为函数名;而第二种方式定义的函数,如果给函数添加了名字,则name属性为该名字,否则为匿名函数。此外,文章还涉及了JavaScript中Number安全整数、闭包、Promise、微任务、词法环境和词法作用域等技术概念的讨论。对于读者来说,这篇文章提供了丰富的JavaScript技术知识,涵盖了函数定义、闭包、Promise、异步执行机制等多个方面,对于深入理解JavaScript编程语言具有一定的参考价值。文章还包括了读者提出的一些问题,如浏览器的鼠标事件识别、DOM树元素位置改变对排版和渲染的影响、前端进阶方向等。作者对读者的问题进行了详细解答,涉及了算法、数据结构、前端框架选择等方面,为读者提供了实用的建议和指导。整体而言,本文内容涵盖了JavaScript技术深入理解和前端开发实践经验分享,适合对JavaScript和前端开发感兴趣的读者阅读学习。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《重学前端》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(17)

  • 最新
  • 精选
  • Geeker1992
    我知道答案了。在 promise 出现之前,javascript 并没有异步,有异步的是宿主环境。

    作者回复: 对的

    2019-04-04
    41
  • Geeker1992
    老师,为什么说没有了微任务就没有了异步?不是还有 setTimeout 的吗?

    作者回复: 因为那是宿主的东西呀,不在JS引擎里

    2019-04-03
    10
  • 哈哈
    function foo(a) { var a; return a; } function bar(a) { var a = 'bye'; return a; } [foo('hello'), bar('hello')]//输出结果为:hello,bye 两个函数内部的 return a; 根据作用域链寻找都是返回函数作用域的 a 吧。 第二个输出我可以理解,可是第一个的输出结果是 hello , 第一个函数的a 不是undefined 吗?

    作者回复: 你自己传参数了啊亲……参数和变量在同一环境里面的

    2019-05-27
    2
  • 阿成
    /** * @param {string} str */ function str2num (str) { const [m, e = ''] = str.split('e') const [i, f = ''] = m.split('.') let result = 0 // handle int let sign = 1 for (let x of i) { if (x === '+') { continue } else if (x === '-') { sign *= -1 continue } else { result *= 10 result += c2n(x) } } // handle fraction if (f) { result += str2num(f) / (10 ** f.length) } // handle exponent if (e) { let exponent let sign = 1 if (e[0] === '-') { sign = -1 exponent = str2num(e.slice(1)) } else if (e[0] === '+') { exponent = str2num(e.slice(1)) } else { exponent = str2num(e) } if (sign === -1) { result /= 10 ** exponent } else { result *= 10 ** exponent } } // handle sign result *= sign return result } function c2n (char) { const n = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9][char] if (n == null) throw new Error(`unknown char: "${char}"`) return n } function assert (input) { let output = str2num(input) let expect = Number(input) if (output !== expect) { throw new Error(`input ${input}, got ${output}, while expect ${expect}`) } } void function test () { assert('13.4e-7') assert('.4e+7') assert('-.2e+1') assert('+.6e+0') assert('0') assert('-0e-0') assert('0e0') assert('123') assert('2e1') assert('2e-0') assert('.1') console.log('All right.') }()
    2019-03-30
    8
  • 自由之翼
    一般都是缓存 数据 吧 ,个人感觉 缓存 js css 纯属没事儿找事儿.
    2019-04-03
    1
    3
  • Geek_c43534
    老师,jquery ajax 同步请求的原理是?目前用axios库,不支持同步请求,如果希望执行同步请求有什么解决办法?
    2019-04-01
    2
    2
  • weineel
    老师您好,把JS代码缓存在 localStorage 中,从 localStorage 取出后怎么执行? 如果缓存的是 css 呢?
    2019-03-30
    2
    2
  • EmilyLucky
    好像对异步任务的分类又多了一点理解。异步中任务分为宏任务和微任务,微任务是后来出现的,它其实是JS引擎内部的机制,而宏任务是宿主环境下的异步。老师,这么理解对吗?那么设计微任务的初衷仅仅就是为了让JS引擎内部有异步么?
    2020-05-12
    1
  • xiaolu289
    js如果取出来是字符串,目前我想到一个方案是用eval去执行,不过感觉直接用localstrage存储js代码这种操作可能会有安全问题,毕竟locastrage在浏览器是随便我怎么改都行的.... css的话,直接插一个style不就好了嘛....js其实也可以插一个script....所以具体什么场景采用什么方案,还得根据业务场景来决定 不知道我理解得是否正确..
    2019-04-01
    1
  • 阿成
    写的过程中遇到了个精度问题: 比如13.4e-7,一开始我的结果是0.0000013399999999999999,然后我把乘法改成了对应的除法,就可以了。这说明JS引擎对除法的处理不是简单的乘以相应的倒数,具体的机制不知道 winter 老师能不能给个解释。
    2019-03-30
    1
收起评论
显示
设置
留言
17
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部