美文网首页
【JS】那些巨坑的面试题一

【JS】那些巨坑的面试题一

作者: 李李李李李晓华 | 来源:发表于2019-03-22 22:53 被阅读0次

最近工作的事情特别多,并且还要准备一个长期出差。。所以最近几天先更一些面试题吧~
出差具体多长??
就是 北京总部已经制定好的未来一段时间的安排 没有打算让我回北京的那种长期

当然,面试题一出,各种知识点的问题就出来了,先做面试题,知识点我后边会更。


一、关于引用类型值和基本类型值的面试题
var a = 10;
a.biu = 10;
console.log(a.biu + a);//打印什么?

var b = 'hello';
b.biu= 'world';
console.log(b.biu + b);//打印什么?

var c = { att : "hello" };
c.biu= 'world';
console.log(c.biu+ c);//打印什么?

二、关于函数的面试题
var a=1 , b=0 , c=0 ;
function add(n) {
    n=n+1;
}
b=add(a);   
alert(b);//弹出几?

function add(n) {
  n=n+3;
}
c=add(a);  
alert(c);//弹出几?

三、关于变量作用域的面试题
(function(){
    a=10;
    console.log(window.a)//打印什么?
    var a=5;
    console.log(a)//打印什么?
}) ()
alert(a);

停-------再翻就看到答案了,先做出答案再看解析


不要偷看
四、答案解析
第一题:

答案分别打印:NaN、'undefinedhello'、'world[object Object]'

  • 首先JS的数据类型分为 基本类型值引用类型值
  • 而两种类型的值其中有一个区别就是:

基本类型值不能扩展属性,所以当你对一个基本类型值 a=1扩展:a.name="lily",然后获取a.name的时候得到的undefined。

1)第一个console.log(a.biu + a);

a.biu是undefined,a是数字10。undefined+10=NaN

2 )第二个console.log(b.biu + b);

b.biu是undefined,b是字符串hello。undefined+hello='undefinedhello'

3 )第三个console.log(c.biu+ c)

c.biu是获取对象的属性,当然能获取到是'world',c是对象。'world'+对象='word[object object]'(按照字符串规则)

第二题:

答案是 undefined undefined
add这个函数没有return,说明函数没有返回值。
如果函数没有返回值,那就返回undefined。
b和c都是代表函数返回值,但是两个函数都没有返回值,所以都是undefined

第三题:

答案是:undefined、5、报错

  1. 其实全局作用域的方法和属性都是window对象的方法和属性
    2)匿名函数里声明了a,但是全局并没有声明变量a。
  2. 第一个window.a,但是window对象没有a这个属性,**当访问一个对象的属性没有的时候,返回undefined。
    4)第二个console.log(a)是在匿名函数的作用域中,作用域中已经声明了a,并且最后赋值5,所以打印5
    5)全局没有变量a,当直接RHS通过访问a(而不是通过window对象访问a属性)的时候,找不到定义a,所以直接报错。

有什么不懂得留言哟~


拜拜!晚安

相关文章

  • 【JS】那些巨坑的面试题一

    最近工作的事情特别多,并且还要准备一个长期出差。。所以最近几天先更一些面试题吧~出差具体多长??就是 北京总部已经...

  • 【JS】那些巨坑的的面试题二

    一、前言 不知道上一篇的几个面试题大家做的怎么样了~感觉如何?是不是很坑。但是其实这些奇葩的面试题往往考的都是你的...

  • 一道坑爹的面试题

    网上看到一道坑爹的面试题,代码如下:(js真是处处是坑呀。。。(┬_┬)) 输出结果(chrome下): 作为前端...

  • js基础面试题

    面试题:延迟加载JS有哪些方式? 面试题:JS数据类型有哪些? 面试题:JS数据类型考题 考题一: 考题二: 面试...

  • 前端相关大杂烩

    前端基础面试题(JS部分) 前端基础面试题(JS部分)学习 React.js 比你想象的要简单 原文地址:Lear...

  • 跳进的那些js坑

    1、多行注释 如上,正则表达式里的*/结尾的部分,将多行注释已经给结束掉,当然报错啦 2、变量提升机制 原因:当函...

  • iOS 字符串转义 Escape

    巨坑,记录下

  • 线程池的那些事

    线程池的那些事情-未必足够详细,但求能看得明白 线程池的demo-坑位后面会补上的 关于线程池的常见面试题分享-坑...

  • 2020-04-09

    这真是一个巨坑

  • 纪念js中的那些坑

    0X01 js 中不存在块级作用域 0X02 js中存在一个特性-变量提升(Hoisting),变量的声明都将会被...

网友评论

      本文标题:【JS】那些巨坑的面试题一

      本文链接:https://www.haomeiwen.com/subject/xgsrvqtx.html