js 面试题理解

问题描述

f = function() {return true;};g = function() {return false;};(function() { if (g() && [] == ![]) { f = function f() {return false;}; function g() {return true;} }})();alert(f()); // true or false ?为什么 []==![] 就是这里不懂了 问题补充:antiwise 写道

解决方案

(function() { if (g() && [] == ![]) { //应该看成if((g() && [] )== ![])//因为g()是false后面那个&&[]就没起作用 整个都是false //![]也是false 所以if成立 进入if块内 f = function f() {return false;}; //重新定义f function g() {return true;} //这句没用 } })(); alert(f());//false

时间: 2024-08-02 08:42:17

js 面试题理解的相关文章

80%应聘者都不及格的JS面试题

写在前面,笔者在做面试官这 2 年多的时间内,面试了数百个前端工程师,惊讶的发现,超过 80% 的候选人对下面这道题的回答情况连及格都达不到.这究竟是怎样神奇的一道面试题?他考察了候选人的哪些能力?对正在读本文的你有什么启示?且听我慢慢道来 不起眼的开始 招聘前端工程师,尤其是中高级前端工程师,扎实的 JS 基础绝对是必要条件,基础不扎实的工程师在面对前端开发中的各种问题时大概率会束手无策.在考察候选人 JS 基础的时候,我经常会提供下面这段代码,然后让候选人分析它实际运行的结果: for (v

很容易被忘记的前端JS面试题

此题是综合之前的开发经验以及遇到的JS各种坑汇集而成.此题涉及的知识点众多,包括变量定义提升.this指针指向.运算符优先级.原型.继承.全局变量污染.对象属性及原型属性优先级等等. 用来考核面试者的 JavaScript的综合能力 /**  * 一道常被人轻视的前端JS面试题  *  * 此题是综合之前的开发经验以及遇到的JS各种坑汇集而成.此题涉及的知识点众多,包括变量定义提升.this指针指向.运算符优先级.原型.继承.全局变量污染.对象属性及原型属性优先级等等.  * 用来考核面试者的

Node.js面试题之2017

本文讲的是Node.js面试题之2017, 为了保证可读性,本文采用意译而非直译. 问题 什么是错误优先的回调函数? 如何避免回调地狱? 什么是Promise? 用什么工具保证一致的代码风格?为什么要这样? 什么是Stub?举例说明 什么是测试金字塔?举例说明 最喜欢哪个HTTP框架?为什么? Cookies如何防范XSS攻击? 如何保证依赖的安全性? 答案 1. 什么是错误优先的回调函数? 错误优先的回调函数(Error-First Callback)用于同时返回错误和数据.第一个参数返回错误

JS面试题---关于算法台阶的问题_javascript技巧

有100格台阶,可以跨1步可以跨2步,那么一个有多少种走法: 今天电话面试.遇到一道算法问题,然后瞬间一脸懵逼: 然后机智的我,自作聪明的想到如果一个人每次都走1步,那么最多100步,每次走2步最少50步:然后明显跑题了...还好对方及时把我打断了...不然我估计要对着这玩意一直死脑经...一路走到黑.. 然后回到家了.拿着偶的mac,然后静静的思考,终于写出来了 var Stairs = new step(); function step(){ this.n1=1; this.n2=2; th

网易JS面试题与Javascript词法作用域说明_javascript技巧

调用对象位于作用域链的前端,局部变量(在函数内部用var声明的变量).函数参数及Arguments对象都在函数内的作用域中--这意味着它们隐藏了作用域链更上层的任何同名的属性. 2010年9月14日,我去参加网易网页工程师招聘会,应聘JS工程师职位.有幸参加笔试,然后有幸栽在笔试,呵呵.废话少说,抓出音响极深的一题重新研究研究. 题目大概是:写出如下代码的输出结果并进行分析 复制代码 代码如下: var tt = 'aa'; function test(){ alert(tt); var tt

学习Javascript教程:JS面试题(有答案)

文章简介:一套完整的javascript面试题.  一.单选题 1.以下哪条语句会产生运行错误:(a,d) A.var obj = ();    B.var obj = [];   C.var obj = {};       D.var obj = //; 2.以下哪个单词不属于javascript保留字:(b) A.with       B.parent       C.class             D.void  3.请选择结果为真的表达式:(b 改为 C) A.null instan

关于js原型继承理解详解

基本形式 我们先来看下面一段代码:  代码如下 复制代码 //构造器函数 function Shape(){ this.x = 0; this.y = 0; } //一个shape实例 var s = new Shape(); 虽然这个例子非常简单,但是有四个"非常重要"的点需要在此阐明: 1.s是一个对象,并且默认的它拥有访问Shape.prototype(即每个由Shape构造函数创建的对象拥有的原型)的权限:简单来说,Shape.prototype就是一个"监视&quo

编写高质量的js之正确理解正则表达式回溯

当一个正则表达式扫描目标字符串时,从左到右逐个扫描正则表达式的组成部分,在每个位置上测试能不能找到一个匹配.对于每一个量词和分支,都必须确定如何继续进行.如果是一个量词(如*.+?或者{2,}),那么正则表达式必须确定何时尝试匹配更多的字符:如果遇到分支(通过|操作符),那么正则表达式必须从这些选项中选择一个进行尝试. 当正则表达式做出这样的决定时,如果有必要,它会记住另一个选项,以备返回后使用.如果所选方案匹配成功,正则表达式将继续扫描正则表达式模板,如果其余部分匹配也成功了,那么匹配就结束了

10 个 Node.js 常见面试题

如果你希望找一份有关Node.js的工作,但又不知道从哪里入手考察自己对Node.js的掌握程度. 本文就提供了这样的一份Node.js面试题列表,通过考察Node.js编程中的一些主要细节, 来帮助你评估你对于Node.js开发的掌握程度. 在进入正文之前,需要提前声明两点: 这些问题只是Node.js知识体系的一个局部,并不能完全考察被面试者的实际开发能力. 对现实世界开发中遇到的问题,需要的是随机应变与团队合作,所以你可以尝试结对编程. Node.js面试题列表 什么是错误优先的回调函数?