24.

function foo() { }
var oldName = foo.name;
foo.name = "bar";
[oldName, foo.name] // [foo,foo]

  函数实例会有一个内置的name属性,这个函数使只读的不可修改,所以两个都是foo

25.

var ary = Array(3);
ary[0]=2;
ary.map(function(elem) {
return '1';
}); // logs [1, , ]

  设置一个空数组var ary = [ , , , ],然后更改ary里的索引为0 的数为2,则为ary = [2, , ],然后用数组方法map循环数组,返回1,map循环时只会循环有数据的内容,所以只会把2改为1,当后面为空时,map不会继续执行.

26

[1 < 2 < 3, 3 < 2 < 1]

//logs[true,true]

  true  1;   false   -1

数据运算会按顺序运算,1<2<3,运算时,先比比较1<2,然后返回true,true和3比较,true转换为数组类型,为1,1<3所以为true

  3<2<1,先比较3<2,返回false,然后false和1比较,会转换为数据类型,false转化为-1,-1<1所以返回true

27.

var a = 111111111111111110000,
b = 1111;
a + b;
//
111111111111111110000;

  js中数值的取值范围为-2^53-2^53,a的范围已经超过了2^53,超过最大值,和其他数做加减法,都为这个最大值

28

var val = 'c';
var str = 'Value is' + (val === 'c') ? 'a':'b';
console.log(str); // a;

  这道题考得是运算的先后顺序,先运算 val === "c",返回true,然后 + 的运算符大于其他运算符,,即最后的结果Value is  true? 'a' : 'b';,布尔值为true,所以返回a

29.

var a = /123/, b = /123/;
console.log(a == b); //false
console.log(a === b);    //false

   /123/是一个正则表达式,所以比较的是两个的引用地址,a和b显然不同,所以返回false

第二个 === 全等比较,与第一个相似,所以说地址不同返回仍为false

30

var lowerCase =  /^[a-z]+$/;
[lowerCase.test(null), lowerCase.test()] //logs [true , true ]

  lowerCase.text(null)的内容为null,null转为字符串"null",以n开头,符合正则表达式,所以为true

lowerCase.text()的内容为undefined,转为字符串"undefined",以u开头,符合正则表达式,所以为true

31

[typeof null, null instanceof Object]

//logs [object , false ]

  typeof会返回简单的数据类型,null会返回object

instanceof是基于原型链的比较,null并不是object原型上创建出来的,null._propto_最终指向null,所以会返回false

32

var ary = [0,1,2];
ary[10] = 10;
ary.filter(function(x) {
return x === undefined;
}); //logs []

  filter的意思是过滤掉通过函数的元素,然后返回未通过的数据,这道题,ary = [0,1,3];然后添加了ary[10] = 10;添加后的数组变为了ary = [0,1,2,empty*7,10],过滤条件为x=undefined,所以会把数组全部过滤掉,剩下的只有空数组,所以结果为[];

33

var ary = Array(3);
ary[0] = 2;
ary.map(function(elem) {
return '1';
}); // logs [1, , ]

  这题考的是map,创建一数组,ary= [ , , ];然后给ary[0] = 2,数组变为ary= [2 , , ],map循环时,只会循环有索引且赋值的数据,而且会按原来的顺序依次进行,当循环完ary[0]后不会继续循环,所以返回的数据为ary =[1,empty*2]

34

function effect(ary) {
ary[0] = ary[2];
}
function run(a,b,c) {
c = 10;
effect(arguments);
return a + b + c;
}
run(1,1,1);
//logs [21]

  在非严格模式下,arguments的值会跟踪参数的值,无论修改arguments[i]本身还是修改的响应的参数本身,两个值都会同步,所以当调用run时,数组为ary= [1,1,10];当执行到effect时,把ary[2]的值赋值给ary[0],

即数组变为ary = [10,1,10]相加为10+10+1=21;但是在严格模式下arguments参数的值不会跟踪参数的值,ary = [1,1,10].最后的结果为1+1+10=12

35

var min = Math.min();
var max = Math.max();
min < max // logs false

  Math.min()如果传入数组就会返回数组中的最小值;

  Math.max()如果传入数组就会返回数组的最大值;

但是如果比较非数字时会自动转化toString或value of方法为字符串后比较,如果不传数组的话,Math.min()会出现infinite(无穷大),Math,max()会出现(-infinite)即无穷小,所以Math.min()>Math.max();

36

function foo(a) {
var a;
return a;
}
function bar(a) {
var a = 'bye';
return a;
}
[foo('hello'), bar('hello')]
// logs [hellow, bye ]

  函数提升,会转化成如下效果

function foo (a)  {
return a;
}
function bar(a) {
a = 'bye';
return a;
}
[foo('hellow'),bar('hellow')]

  var申明提升,所以var a  = undefined;参数会赋值给a,bar()时,修改了a的值所以为'bye',所以最后返回 ['hellow','bye']

37

function f() {}
var a = f.prototype;
var b = Object.getPrototypeOf(f);
a === b // logs false

  函数的原型与它的prototype无关,所以互不相等

javascript面试题(二)的更多相关文章

  1. 你应该知道的25道Javascript面试题

    题目来自 25 Essential JavaScript Interview Questions.闲来无事,正好切一下. 一 What is a potential pitfall with usin ...

  2. 互联网中级Javascript面试题

    互联网中级Javascript面试题 1.实现一个函数clone,可以对JavaScript中的5种主要的数据类型(包括Number.String.Object.Array.Boolean)进行值复制 ...

  3. 互联网公司前端初级Javascript面试题

    互联网公司前端初级Javascript面试题 1.JavaScript是一门什么样的语言,它有哪些特点?(简述javascript语言的特点)JavaScript是一种基于对象(Object)和事件驱 ...

  4. 人人网javascript面试题

    JavaScript面试题要求:以下题目必须从一至四题中,选出三道题,使用原生代码实现,不可使用任何框架,第五题为选作题. 一.  在页面的固定区域内实现图片的展示       <ignore_ ...

  5. 174道 JavaScript 面试题,助你查漏补缺

    最近在整理 JavaScript 的时候发现遇到了很多面试中常见的面试题,本部分主要是作者在 Github 等各大论坛收录的 JavaScript 相关知识和一些相关面试题时所做的笔记,分享这份总结给 ...

  6. JavaScript 入门教程二 在HTML中使用 JavaScript

    一.使用 <script> 元素的方式有两种:直接在页面中嵌入 JavaScript 代码和引用外部 JavaScript 文件. 二.使用内嵌方式,一般写法为: <script t ...

  7. 一道 JavaScript 面试题

    有一道 JavaScript 面试题. f = function () { return true; }; g = function () { return false; }; (function() ...

  8. JavaScript基础笔记二

    一.函数返回值1.什么是函数返回值    函数的执行结果2. 可以没有return // 没有return或者return后面为空则会返回undefined3.一个函数应该只返回一种类型的值 二.可变 ...

  9. JavaScript基本概念(二)

    JavaScript 基本概念(二) 操作符和语句 目录 操作符 一元操作符 位操作符 布尔操作符 乘性操作符 其他操作符 语句部分 说起操作符,回忆下上一篇文章末尾说的话. 操作符 一元操作符 ++ ...

随机推荐

  1. 入门python有什么好的书籍推荐?纯干货推荐,你值得一看 python基础,爬虫,数据分析

    Python入门书籍不用看太多,看一本就够.重要的是你要学习Python的哪个方向,或者说你对什么方向感兴趣,因为Python这门语言的应用领域比较广泛,比如说可以用来做数据分析.机器学习,也可以用来 ...

  2. GitHub上最火的SpringCloud微服务商城系统项目,附全套教程

    项目介绍 mall-swarm是一套微服务商城系统,采用了 Spring Cloud Greenwich.Spring Boot 2.MyBatis.Docker.Elasticsearch等核心技术 ...

  3. JavaScript学习系列博客_12_JavaScript中的break、continue关键字

    break关键字 -break关键字可以用来退出switch或循环语句 -不能在if语句中使用break和continue,但不是说if语句里面不能写break关键字,break关键字一定要包含在sw ...

  4. SparkStreaming架构

    SparkStreaming是一个对实时数据流进行高通量.容错处理的流式处理系统,可以对多种数据源(如Kdfka.Flume.Twitter.Zero和TCP 套接字)进行类似Map.Reduce和J ...

  5. centos7.8 安装部署 k8s 集群

    centos7.8 安装部署 k8s 集群 目录 centos7.8 安装部署 k8s 集群 环境说明 Docker 安装 k8s 安装准备工作 Master 节点安装 k8s 版本查看 安装 kub ...

  6. Golang omitempty 的用法

    原文链接:https://blog.csdn.net/skh2015java/article/details/90720692omitempty作用是在json数据结构转换时,当该字段的值为该字段类型 ...

  7. 对于CSS里面我之前不太清楚的伪类,我做一些总结

    格式: 标签 + : + 参数 +{ 可填背景颜色,字体颜色,鼠标样式,加粗等 } a:hover{ color:#f40;} :link表示鼠标点击之前的样式 :hover表示鼠标放上去的样式 :a ...

  8. 操作系统-I/O(2)设备的分配

    作业执行前对设备提出申请时,指定某台具体的物理设备会让设备分配变得简单,但如果所指定设备出现故障,即便计算机系统中有同类设备也不能运行 设备独立性:用户通常不指定物理设备,而是指定逻辑设备,使得用户作 ...

  9. 如何使用python移除/删除非空文件夹?

    移除/删除非空文件夹/目录的最有效方法是什么? 1.标准库参考:shutil.rmtree. 根据设计,rmtree在包含只读文件的文件夹树上失败.如果要删除文件夹,不管它是否包含只读文件,请使用 i ...

  10. shell 三剑客之 sed

    sed 在shell 编程里也很常用,功能强大! 同grep一样,sed提供两种方式: 方式一:stdout | sed [option] "pattern command" 从文 ...