js 面试的坑】的更多相关文章

JavaScript事件属性event.target <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> #main { width: 200px; height: 100px; background: red; } </style> &l…
全局中的解析和执行过程 预处理:创建一个词法环境(LexicalEnvironment,在后面简写为LE),扫描JS中的用声明的方式声明的函数,用var定义的变量并将它们加到预处理阶段的词法环境中去. 一.全局环境中如何理解预处理 比如说下面的这段代码: var a = 1;//用var定义的变量,以赋值 var b;//用var定义的变量,未赋值 c = 3;//未定义,直接赋值 function d(){//用声明的方式声明的函数 console.log('hello'); } var e…
1 前言 nodejs的回调,有时候真的是让人又爱又恨的,当需要用for循环把数据依次存入数据库,但是如果使用正常的for循环,永远都是最后一次值的记录,根本不符合要求. 解决此方案有几种,例如闭包(这里利用js函数编程的特性,建立一个闭包来保存每次需要的i值),详情参见参考1和Asyn函数,然后函数的forEach方法也是居于它实现的. 注:async主要实现了很多有用的函数,例如: each: 如果想对同一个集合中的所有元素都执行同一个异步操作. map: 对集合中的每一个元素,执行某个异步…
本文会不定期更新在nuxt.js中遇到的问题进行汇总.转发请注明出处,尊重作者,谢谢! 强烈推荐作者文档版踩坑指南,点击跳转踩坑指南 在Nuxt的官方文档中,中文文档和英文文档都存在着不小的差异. 1.路径匹配问题: In Nuxt.js, the path match is as follows: @import url('~assets/css/style.css') //Error This path matching is an error, and writing it like th…
最近在研究Javascript发现了其中一些比较灵异的事情.有点让人感到无语比如: var arr = [], arr2 = {}; console.log(typeof(arr) === typeof(arr2)); // true 上方利用typeof比较数组和对象,因为typeof获取NULL.数组.对象的类型都为object,所以console为true. var arr = [], arr2 = []; console.log(arr === arr2); // false 上方两个相…
1.typeof 对类型的判断 (function() { return typeof arguments; } )(); 答案:"Object" 解释:arguments是一个伪数组,是JavaScript内置对象. 2.函数的声明 var f = function g(){ return 23; }; typeof g(); 答案:会报错.Uncaught ReferenceError: g is not defined 解释:因为在这里function g(){return 23…
虽说我们很多时候前端很少有机会接触到算法.大多都交互性的操作,然而从各大公司面试来看,算法依旧是考察的一方面.实际上学习数据结构与算法对于工程师去理解和分析问题都是有帮助的.如果将来当我们面对较为复杂的问题,这些基础知识的积累可以帮助我们更好的优化解决思路.下面罗列在前端面试中经常撞见的几个问题吧. Q1 判断一个单词是否是回文? 回文是指把相同的词汇或句子,在下文中调换位置或颠倒过来,产生首尾回环的情趣,叫做回文,也叫回环.比如 mamam redivider . 很多人拿到这样的题目非常容易…
大家来补充 1.变量类型模糊,容易出现问题; var a='1',b=1; a==b; //true a===b; //false 2.全局变量与函数内部变量同名时,在函数内部声明变量,声明位置虽然在后,但在这之前,此名变量已为‘undefined’; 其实这个的准确说法应该叫法,作用域声明提前,也就是说在作用域内所有的声明都会在编译前放到作用域的最前面,赋值位置不变. var a = 'aaa'; function b() { console.log(a); var a = 'bbb'; co…
JS的灵活 说好听是说JS灵活, 说不好听就是JS的坑太多, JS类型转换就是一个大坑, JS的类型包括了原始类型的[null, undefined, String ,Number, Boolean],以及对象类型的[function, object]; , -, NaN 转换成布尔值是false, 剩下的全转化为 ==>> true; ; undefind, "One", 一个非数字值的数组:["a"], function(){} 转化成数字是 ==&…
------20190318 ------------- 回头看,很多槽点已经随着升级改掉了   绑定string字面值到子组件@Input <app-overlay-static [name]="'marsh'"></app-overlay-static> 双引号+单引号.表示string的字面值. 不常用,因为通常是父组件遍历自己的属性,或者传自己的属性给子组件 更常见的是:只有双引号: [子组件@input] = 父组件的属性   #-----------…