JS笔试题
JS 引用相关题目
以下代码输出什么? 为什么?
 var a = {n:1};
 var b = a;
 a = {n:2};
 a.x = a ;
 console.log(a.x);
 console.log(b.x);
 var a = {n:1};
 var b = a;
 a.x = a = {n:2};
 console.log(a.x);
 console.log(b.x);
第一个问题:
a.x ---> {n:2,x:a};
b.x ---> undefined;
解答:a的值很清晰了,a第二次赋值以后变成了{n:2},随后添加了x属性指向自身。而对于b,在a第二次赋值以后,由于js中给变量赋值为object类型时,变量中存储的是对这个object的引用。
此时,a指向{n:2} ,而b指向了{n:1} ,a和b指向不同的对象,因此,在a上添加属性对于b无影响,b.x自然就是undefined。
第二个问题:
解答:第三句里的主要难点在js运算符的优先级,访问属性、调用方法运算符"."的优先级高于赋值运算符。因此执行顺序是
- 给a添加属性x,此时a,b都是 { n:1,x:undefined }a.x 运算后的结果即为这个object(可以说也就是b)的x属性值。
- 把{n:2}赋值给a,此时a是 {n:2} ,b是{ n:1,x:undefined }。这个时候a.x 已经运算完了,不会再与a产生任何关系,a.x依旧代表那个n为1对象的x属性值,和a已经没关系了。
- 把{n:2}赋值给a.x 也就是 { n:1,x:undefined }这个对象的x属性,这个时候b依旧指向这个object,因此此时,a是{n:2},b是{n:1,x:{n:2}}
JS 运算符优先级相关题目
如下代码输出什么? 解释原因
 var object1 = {
     valueOf: function () {
         return 1;
     },
     toString: function () {
         return "object1";
     }
 };
 var object2 = {
     valueOf: function () {
         return 2;
     },
     toString: function () {
         return "object2";
     }
 };
 alert((object2 > object1 +-- object1) + true); //输出什么? 解释原因
(object2 > object1 +-- object1) + true);
先算大于号obj2 > obj1 == 2 > 1 == true; =>true + -- obj1 == true + --1 == true + 0 == 1 + 0 == 1; =>1 + true == 1 + 1 == 2
故输出2
1KB为什么等于1024B而不是1000B?
请说明原因(公式推倒+文字描述),另外,怎么解释硬盘标的量没有实际多,运营商的10M带宽指的是哪种?
- 硬盘的标量是按照1KB==1000B计算的,以此计算,标量1TB的硬盘实际使用量是:0.976TB
- 10Mb/s == 1.25MB/s (八位一比特)。
- 1KB = 2 ^ 10 B = 1024B
JS笔试题的更多相关文章
- 所在实习公司的JS笔试题
		在班上无聊的时候看到了一份JS笔试题(我是电面进去的,没做过这份题~~),开始还觉得蛮简单......后来觉得还是很有意思的,贴出来一起看看. 题目一: if(!("a" in w ... 
- 2016 JS 笔试题汇总:
		1 1 1 CS&S(中软国际): 1 JavaScript 循环表达式: 2 JavaScript表达式boolean返回值: 3 网页中的事件/HTML 事件属性/JavaScript ... 
- 容易答错的JS笔试题
		1,考察this var length = 10 function fn(){ alert(this.length) } var obj = { length: 5, meth ... 
- Js笔试题之千分位格式化
		用js实现如下功能,将给定的数字转化成千分位的格式,如把“10000”转化成“10,000”,并考虑到性能方面的因素. 一.首先想到的办法,将数字转换为字符串(toString())再打散成数组(sp ... 
- 蛮考验基础的JS笔试题(有坑小心!)
		1. 考察this var length = 10 function fn(){ alert(this.length) } var obj = { length: 5, method: functi ... 
- js笔试题一套(未完待续)
		1.下面程序的运行结果是: function test(x, y, z) { alert(test.length); alert(arguments.length); alert(arguments. ... 
- Js笔试题之返回只包含数字类型的数组
		如js123ldka78sdasfgr653 => [123,78,653] 一般做法 分析: 1.循环字符串每个字符,是数字的挑出来拼接在一起,不是数字的,就给他空的拼个逗号 2.将新字符串每 ... 
- Js笔试题之正则表达式
		一.复习字符串的传统操作 如何获取一个字符串中的数字字符,并按数组形式输出,如 dgfhfgh254bhku289fgdhdy675gfh 输出[254,289,675] 分析:循环用charAt() ... 
- Js笔试题之parseInt()和.map()
		parseInt()的几个例子 var b = parseInt("01"); alert("b="+b); var c = parseInt("09 ... 
随机推荐
- 在Fedora 20下编译安装QEMU
			由于OpenStack的流行,现在越来越多的人关注QEMU,最近发行了新版本1.7,下面就说Fedora下的安装过程: 首先需要安装基本的编译软件和git sudo yum install gcc m ... 
- 通过IIS发布站点和VS2012自带发布网站
			vs2012通过IIS发布站点 http://jingyan.baidu.com/article/0964eca2d7beeb8285f536bd.html 用VS2012自带发布网站 http:// ... 
- cf C. Xenia and Weights
			http://codeforces.com/contest/339/problem/C #include <cstdio> #include <cstring> #includ ... 
- poj2409 Let it Bead
			Let it Bead Time Limit: 1000MS M ... 
- LCD的背光及觸摸屏
			液晶的发现可追溯到19 世纪末,1888 年被奥地利植物学家发现.它是一种在一定温度范围内呈现既不同于固态.液态,又不同于气态的特殊物质态.既具有晶体所具有的各向异性造成的双折射性,又具有液体所特有的 ... 
- mac OSX上eclipse adb无法识别(调试)小米的解决方案
			最近在Mac上开发安卓,用小米2a作为开发机,连上电脑后发现idea和eclipse真机调试的时候都提示USB device not found.经过一番google和百度,终于找到了解决方案,在这里 ... 
- ajax 调用后台接口示例
			$(function(){ var _del_time_list = $("select[name='del_time_list']"); var _del_table_name ... 
- 【转】Linux下Android ADB驱动安装详解
			原文网址:http://blog.csdn.net/zhenwenxian/article/details/5901350 Linux下Android ADB驱动安装详解 概述 最近由于内置的合作商比 ... 
- 【转】关于android应用程序的入口
			android应用程序,由一到多个Activity组成.每个Activity没有很紧密的联系,因为我们可以在自己的程序中调用其它Activity,特别是调用自己的代码之外生成的Activity,比如a ... 
- VirtualBox 扩展包卸载或安装失败(VERR_ALREADY_EXISTS)
			最近在卸载VirtualBox出现了无法卸载的错误.提示为Failed to install the extension. The installer failed with exit code 1: ... 
