ecmascript相关内容
问 题 let foo; let {foo} = {foo: 1}; // SyntaxError: Duplicate declaration "foo" let baz; let {bar: baz} = {bar: 1}; // SyntaxError: Duplicate declaration "baz" 上面代码中,解构赋值的变量都会重新声明,所以报错了。不过,因为var命令允许
..
问 题 var twice = { apply (target, ctx, args) { console.log("apply:" + target); return Reflect.apply(...arguments) * 2; } }; var sum = { ss(){ console.log("sum ss()"); r
..
问 题 function Dog(argument) {} function Huskies(argument) {} Huskies.prototype = new Dog(); var dog = new Huskies(); 代码如上,当我输出:console.log(dog.constructor);的时候,输出的是Dog,我又改了一下Dog: function Dog(a
..
问 题 在 window 上监听keypress事件 当触发keydown事件时,判断ctrlKey是否为true,keyCode是否为87(w 如果是,阻止默认事件。 但是似乎并不能阻止窗口关闭事件 //测试屏蔽ctrl+w $(window).on('keydown',function(event){ if(event
..
问 题 项目需要有序地加载10张左右的图片,现在写了一堆的addEventListener('load'); 想用promise实现,求指教 解决方案 addEventListener('load'); 这个必须加的,promise直白的讲就是把原有得callback的形式,整理成类似同步的书写形式.但是在执行下一个操作的时候必须有第一个操作的已完成通知。 所以大概思路是
..
问 题 或者说在什么时候保留function写法呢?讨论下代码风格问题? 解决方案 箭头函数就是拿来简写部分只有几句话的小函数的 使用的时候注意它的副作用就是了: 函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。 不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误。 不可以使用arguments对象,该对象在函数体
..
问 题 比如一个构造函数Test function Test(){ // 代码} var test1=new Test(); 当new的时候,内部究竟发生了什么? 解决方案 object 大法好 在一切皆为对象的时代,js 的 Object 可以让我们创建很多相同的对象,继承对象,扩展对象,所以楼主的 new 也可以这么玩: //楼主对象 function
..
问 题 const PageLoading = () => (
); 这是React里的一段代码,定义函数为什么这样写: const PageLoading = () => ( ); 而不是这样: function PageLoading(){
..
问 题 const {app} = require('electron') app.on('window-all-closed', () => { app.quit() }) const {} = ... 这是什么语法规则? 解决方案 变量的解构赋值
..
问 题 代码: var p1 = new Promise(function (resolve, reject) { setTimeout(() => reject("123"), 3000) }) var p2 = new Promise(function (resolve, reject) { setTimeout(() => resolve(p1), 1000)
..
问 题 例子: let x = 99; function foo(p = x + 1) { console.log(p); } foo() // 100 x = 100; foo() // 101 但是,如果我将参数稍微改变一下为: let x = 99; function foo(x = x + 1) { console.log(x); } foo() // N
..
问 题 class SomeController { static async someFunction() { // await } } export default SomeController; 为什么node中报了Unexpected token export的错误? 解决方案 因为不支持。
..
问 题 什么场景下我需要取消一个promise? 我不理解的地方: http是无状态的,那取消是不是意味着新的请求? 还是说取消仅是本地取消,不处理之前请求的结果? 解决方案 Promise 的设计就是一个状态机,pending 到 resolve / reject 的状态变换是单向且唯一的,没有所谓的 cancel 状态。cancel 的加入会带来更多的状态问题,并不适合
..
最近在看阮一峰的ES6入门。下图中圈出来的地方不太理解。 文中说到.js后缀不可省略。 但是下文中又出现了如下写法: // lib.js export let counter = 3; export function incCounter() { counter++; } // main.js import { counter, incCounter } from './lib
..
为什么我在chrome的控制台测试es6新的语法...+数组的时候,还要写上console.log,我现在不是在chrome的console里面了吗?
..
《JavaScript高级程序设计(第3版)》里面有这样一段: 我测试了一下 好像实例和原型都可以调用,那么什么叫做直接在原型对象上调用该方法呢?
..
第一段: var x = 3 var x = 1; function foo(x, y = function() { x = 2; }) { var x = 3; y(); console.log(x); } foo() // 3 x // 1 第二段: x = 3 var x = 1; function foo(x, y = function() { x = 2; }
..
问 题 项目基于vue-cli,我需要使用 import() 语法按需引入某个文件,现在写相对路径暂时可以解决问题,但是为了以后维护想改成绝对路径。不知道该怎么写。 解决方案 不知道你注意没注意vue cli生产的wenpack配置中有这个: resolve: { extensions: ['.js', '.vue', '.json'], alias: {
..
问 题 nodejs文档中讲url模块的一段 const { URL } = require('url'); const myURL = new URL('https://user:pass@sub.host.com:8080/p/a/t/h?query=string#hash'); {URL}这种声明方式具体是什么意思呢?有没有文档之类的 解决方案 这个是ES6中的
..