那些年坑爹的JS题目
真是让人疑惑的基础。又是一堆奇怪的题目。
题目一. 应该是关于作用域的
function test(n) {
this.x = n;
return this;
}
var x = test(1);
var y = test(2);
console.log(x === y); // true
console.log(x.x, y.x); // 2 2
题目二. 关于 基本数据类型 和 引用数据类型
这题已经坑过了非常多的人。不仅仅是作为题目。
下面这两行是会报错的。
var f = function(){}
(function(){})();
下面这个就不报错,虽然和 之前的代码实际上效果是一样的。
var f = function(){}
+function(){}();
js 报错(intermediate value)(...) is not a function
题目三. JS 判断 - 极度坑爹
console.log(true == 'true'); // false
题解之高程三第三章 相等操作符 原则:
- 1.如果有一个操作数是 bool 值。则比较之前:先将 true 变为 1,false 变为 0
- 2.如果一个操作数是字符串,另一个操作数是字符,则比较之前:字符串 -> 数字(Number的方式)
- 3.如果一个操作数是对象,另外一个不是,则调用对象的 valueOf 方法。
所以,这么看的话,就不奇怪了。
console.log(true == 'true'); // false
console.log(1 == 'true'); //false
console.log(1 == parseInt('true')); //false
console.log(1 == NaN); //false
根据 NaN 的 无敌 特性: 我跟任何人都不一样(不相等).所以
console.log(false == 'true'); // false
console.log(false == 'true'); //false
console.log(false == parseInt('true')); //false
console.log(false == NaN); //false
顺便来谈谈 对象类的 判断
console.log("" == ""); // true 基本数据类型
console.log([] == []); // false 引用数据类型
console.log({} == {}); // false 引用数据类型
console.log(new String("") == new String("")); // false 引用数据类型
题目四. 函数提升问题
var f = function(){return true};
var g = function(){return false};
function g(){};
(function(){
if(g() && []!==[]) {
f = function(){return false};
function g() {return true};
}
})();
console.log(f());
console.log(g());
那些年坑爹的JS题目的更多相关文章
- 一道原生js题目引发的思考(鼠标停留区块计时)
我瞎逛个啥论坛,发现了一个题目,于是本着练手的心态就开始写起来了,于是各种问题接踵而至,收获不小. 题目是这样的: Demo: mouseenter与mouseover区别demo 跨浏览器的区块计数 ...
- 百度移动搜索自动转码太坑爹,JS跳转地址会被抓取
这段时间碰到个很崩溃的问题,一个页面通过 script 加载请求服务端进行统计再输出js进行跳转,分为两个步骤分别统计, 打开页面通过script 请求远程服务器进行统计并输出要通过js使页面跳转的最 ...
- 阿里巴巴Web前端面试的一道JS题目,求解答!!!
题目大概是这种: function outer(){ return inner; var inner = "a"; function inner(){}; inner = 9; } ...
- 【转】外国朋友出的js题目,你能对几道
原文地址 http://perfectionkills.com/javascript-quiz/ 中文地址加解释:by Aaron:http://www.cnblogs.com/aaronjs/p/3 ...
- JS题目
1.请你谈谈Cookie的弊端 cookie虽然在持久保存客户端数据提供了方便,分担了服务器存储的负担,但还是有很多局限性的. 第一:每个特定的域名下最多生成20个cookie 1.IE6或更低版本最 ...
- js题目小记
一.字符串反转 第一种方法:利用数组方法 //先split将字串变成单字数组,然后reverse()反转,然后将数组拼接回字串 var str = "abcdef"; str.sp ...
- 记录一道有意思的js题目
偶然机会,在codewars上面开始做题,遇到一道有意思的题目,记录一下: 题目是这样的: In this kata, you will write a function that returns t ...
- 几个简单的html+css+js题目
1.页面中有一图片,请在下划线处添加代码能够实现隐藏该图片的功能 <img id="pic" src="door.jpg" width="200 ...
- 有趣的js题目
([]).length ({}).length // undefined ([] + {}).length ({} + {}).length 具体解释见此.
随机推荐
- XMPP 客户端和服务端
GPLv2授权不能商用 XMPP协议的客户端软件列表 http://zh.wikipedia.org/wiki/XMPP%E5%8D%94%E8%AD%B0%E7%9A%84%E5%AE%A2%E6% ...
- appium如何连接模拟器代码实例
from appium import webdriver def connect(self): self.desired_caps = {} self.desired_caps['platformNa ...
- java多线程环境单例模式实现详解
Abstract 在开发中,如果某个实例的创建需要消耗很多系统资源,那么我们通常会使用惰性加载机制,也就是说只有当使用到这个实例的时候才会创建这个实例,这个好处在单例模式中得到了广泛应用.这个机制在s ...
- PCL —— RCNN Family 中层次点云处理
博客转载自:http://www.cnblogs.com/ironstark/p/6046411.html RCNN是从图像中检测物体位置的方法,严格来讲不属于三维计算机视觉.但是这种方法却又非常非常 ...
- 算法Sedgewick第四版-第1章基础-2.1Elementary Sortss-006归并排序(Mergesort)
一. 1.特点 (1)merge-sort : to sort an array, divide it into two halves, sort the two halves (recursivel ...
- p4213 【模板】杜教筛(Sum)
传送门 分析 我们知道 $\varphi * 1 = id$ $\mu * 1 = e$ 杜教筛即可 代码 #include<iostream> #include<cstdio> ...
- tab页以及jqgrid某些用法参考记录
<%@ Page Language="C#" AutoEventWireup="True" CodeBehind="CcrCreditHuman ...
- C++中的内存重叠问题
内存重叠,直到做到一个笔试题才知道了什么是内存重叠.先上题目吧,是一个淘宝的笔试题,当时有点懵,不知道这个名词是啥子意思. 题目:补充下面函数代码: 如果两段内存重叠,用memcpy函数可能会导致行为 ...
- 《Maven实战》笔记-8-构建部署Web项目
一.Web项目结构 1.显式指定Web项目打包方式为war: 2.默认目录 根据“约定大于配置”的规则,Web项目的类及资源文件默认位置为src/main/java和src/main/reso ...
- c# interface(接口)和abstract(抽象类)区别
抽象类依然是一个类,不能被实例化,可以包含字段.成员变量.抽象方法.或者不抽象方法. 类继承抽象类,只重写抽象方法即可,其他是可以得到继承的. 接口是规则,里面只包含:方法.属性.索引.事件.类继承接 ...