谢本寅

谢本寅 查看完整档案

填写现居城市  |  填写毕业院校  |  填写所在公司/组织填写个人主网站
编辑
_ | |__ _ _ __ _ | '_ \| | | |/ _` | | |_) | |_| | (_| | |_.__/ \__,_|\__, | |___/ 该用户太懒什么也没留下

个人动态

谢本寅 赞了回答 · 11月3日

解决js中typeof 和 instanceof 的理解

a只是一个以string为数据类型的值,但并不属于String对象的实例


var a= new String('aaa')
console.log(a instanceof String) //true 

关注 5 回答 4

谢本寅 赞了回答 · 11月3日

解决js中typeof 和 instanceof 的理解

a instanceof String 的真实意义是判断String是否在a的原型链上。如果字符串是用var a = new String('123')这种方式声明的话,String一定在a的原型链上。

var a = '123'这个变量a属于一个字面量字符串,而不是真正的由String构造函数new出来的字符串。

你可以在字符串字面值上使用字符串对象的所有方法——JavaScript会自动将字符串字面值转换为一个临时字符串对象,调用该方法,然后废弃掉那个临时的字符串对象。你也能用对字符串字面值使用类似String.length的属性。

具体你可以看看MDN关于String类型以及字面量的解释:

https://developer.mozilla.org...

https://developer.mozilla.org...

关注 5 回答 4

谢本寅 赞了文章 · 11月2日

void 0 与 undefined的区别

看到了这个么一段代码.

        function foo() {
                    var a  = arguments[0] !== (void 0 ) ? arguments[0] : 2;
                return a; 
        }

void 0 返回undefined,我们都知道的,但是为什么不直接 arguments[0] !== undefined?

1.undefined可以被重写

undefined 在 ES5 中已经是全局对象的一个只读(read-only)属性了,它不能被重写。但是在局部作用域中,还是可以被重写的。

(function() {
  var undefined = 10;
 
  // 10 -- chrome
  alert(undefined);
})();
 
(function() {
  undefined = 10;
 
  // undefined -- chrome
  alert(undefined);
})();

2.为什么选择void 0 作为undefined的替代

void 运算符能对给定的表达式进行求值,然后返回 undefined。也就是说,void 后面你随便跟上一个表达式,返回的都是 undefined,如 void (2), void (‘hello’)。并且void是不能被重写的。但为什么是void 0 呢,void 0 是表达式中最短的。用 void 0 代替 undefined 能节省字节。不少 JavaScript 压缩工具在压缩过程中,正是将 undefined 用 void 0 代替掉了。
查看原文

赞 2 收藏 0 评论 2

谢本寅 赞了回答 · 10月19日

解决JavaScript async/await 中执行顺序问题

async/await 是Promise的语法糖。

await async2();
console.log("async111 end"); 
// 相当于
Promise(()=>{
    async2(); // Promise中的函数是会立即执行的
}).then(()=>{
    console.log("async111 end"); 
})

Promise.then 是微任务,是在执行完一个宏任务队列后再清空执行的。

关注 4 回答 4

谢本寅 赞了回答 · 10月19日

解决JavaScript async/await 中执行顺序问题

async1函数相当于:

async function async1() {
    console.log("async1 start");
    async2().then(() => {
        console.log("async111 end"); // 为什么在 console.log("start")后执行
    })    
}

关注 4 回答 4

谢本寅 提出了问题 · 10月18日

解决JavaScript async/await 中执行顺序问题

async function async1() {
     console.log("async1 start");
    await async2();
    console.log("async111 end"); // 为什么在 console.log("start")后执行
}
async function async2() {
    setTimeout(() => {
        console.log("timer")
    }, 0)
    console.log("async2")
}
async1()
console.log("start")

输出结果
async1 start
async2
start
async111 end
undefined
timer


第3个输出结果为什么是 start 而不是 async111 end
为什么 async1 函数还没有执行到第二个 console.log 就输出了调用 async1() 函数后面的 console.log("start")?

关注 4 回答 4

谢本寅 赞了回答 · 10月18日

JavaScript async/await 输出问题

低级错误,函数执行应该加上括号 await q();

关注 2 回答 1

谢本寅 提出了问题 · 9月27日

vue 使用作用域插槽的一个问题

我在使用作用域插槽向父组件暴露数据的同时可以使用具名插槽吗?

关注 2 回答 1

谢本寅 关注了标签 · 9月26日

javascript

JavaScript 是一门弱类型的动态脚本语言,支持多种编程范式,包括面向对象和函数式编程,被广泛用于 Web 开发。

一般来说,完整的JavaScript包括以下几个部分:

  • ECMAScript,描述了该语言的语法和基本对象
  • 文档对象模型(DOM),描述处理网页内容的方法和接口
  • 浏览器对象模型(BOM),描述与浏览器进行交互的方法和接口

它的基本特点如下:

  • 是一种解释性脚本语言(代码不进行预编译)。
  • 主要用来向HTML页面添加交互行为。
  • 可以直接嵌入HTML页面,但写成单独的js文件有利于结构和行为的分离。

JavaScript常用来完成以下任务:

  • 嵌入动态文本于HTML页面
  • 对浏览器事件作出响应
  • 读写HTML元素
  • 在数据被提交到服务器之前验证数据
  • 检测访客的浏览器信息

《 Javascript 优点在整个语言中占多大比例?

关注 137826

谢本寅 关注了标签 · 9月26日

vue.js

Reactive Components for Modern Web Interfaces.

Vue.js 是一个用于创建 web 交互界面的。其特点是

  • 简洁 HTML 模板 + JSON 数据,再创建一个 Vue 实例,就这么简单。
  • 数据驱动 自动追踪依赖的模板表达式和计算属性。
  • 组件化 用解耦、可复用的组件来构造界面。
  • 轻量 ~24kb min+gzip,无依赖。
  • 快速 精确有效的异步批量 DOM 更新。
  • 模块友好 通过 NPM 或 Bower 安装,无缝融入你的工作流。

官网:https://vuejs.org
GitHub:https://github.com/vuejs/vue

关注 99917

谢本寅 关注了标签 · 9月26日

前端

Web前端开发是从网页制作演变而来的,名称上有很明显的时代特征。在互联网的演化进程中,网页制作是Web 1.0时代的产物,那时网站的主要内容都是静态的,用户使用网站的行为也以浏览为主。2005年以后,互联网进入Web 2.0时代,各种类似桌面软件的Web应用大量涌现,网站的前端由此发生了翻天覆地的变化。网页不再只是承载单一的文字和图片,各种富媒体让网页的内容更加生动,网页上软件化的交互形式为用户提供了更好的使用体验,这些都是基于前端技术实现的。

Web前端优化
  1. 尽量减少HTTP请求 (Make Fewer HTTP Requests)
  2. 减少 DNS 查找 (Reduce DNS Lookups)
  3. 避免重定向 (Avoid Redirects)
  4. 使得 Ajax 可缓存 (Make Ajax Cacheable)
  5. 延迟载入组件 (Post-load Components)
  6. 预载入组件 (Preload Components)
  7. 减少 DOM 元素数量 (Reduce the Number of DOM Elements)
  8. 切分组件到多个域 (Split Components Across Domains)
  9. 最小化 iframe 的数量 (Minimize the Number of iframes)
  10. 杜绝 http 404 错误 (No 404s)

关注 155750