JS面试题集锦

1.
var x = new Boolean(false);
if (x) {
  alert('hi');
}
var y = Boolean(0);
if (y) {
  alert('hello');
}
的显示结果是? hi

当一个值为false的Boolean对象放到条件语句当中的时候,Boolean对象的值会被当作true来计算,但是它本身的值并

没有改变,依然是false。
2.angularjs1中的服务实质上是单例对象

单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系

统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中

某个类的对象只能存在一个,单例模式是最好的解决方案。

单例模式的要点有三个;一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提

供这个实例。
3.
var myObject = {
    foo: "bar",
    func: function() {
        var self = this;
        console.log(this.foo);  
        console.log(self.foo);  
        (function() {
            console.log(this.foo);  
            console.log(self.foo);  
        }());
    }
};
myObject.func();
程序的输出是什么?
  1.第一个this.foo输出bar,因为当前this指向对象myObject。
  2.第二个self.foo输出bar,因为self是this的副本,同指向myObject对象。
  3.第三个this.foo输出undefined,因为这个IIFE(立即执行函数表达式)中的this指向window。
  4.第四个self.foo输出bar,因为这个匿名函数所处的上下文中没有self,所以通过作用域链向上查找,从包含它的

父函数中找到了指向myObject对象的self。
4.angularjs1使用了mvc进行web开发,其中控制层一般用什么语言来定义    javascript
5.angularjs1中关于服务的说法错误的是:D

   A.避免全局对象污染

   B.能注入到其它组件

   C.避免代码分散到各处

   D.主要进行DOM操作和数据绑定
6.语句var arr=[a,b,c,d];执行后,数组arr中每项都是一个整数,下面得到其中最大整数语句正确的是哪几项?BCD


   A.Math.max(arr)

   B.Math.max(arr[0], arr[1], arr[2], arr[3])

   C.Math.max.call(Math, arr[0], arr[1], arr[2], arr[3])

   D.Math.max.apply(Math,arr)
   js函数调用,如果未指明函数所指的类,即直接调用functionA(),this关键字指向当前环境即window对象,相

当于调用window.functionA()。call、apply方法的第一个参数是this关键字,即指明functionA()是哪一个对象的方

法。apply以数组传递参数,call独立传递。
7.
填写内容让下面代码支持a.name = “name1”; b.name = “name2”;
function obj(name){
    1
}
obj. 2 = "name2";
var a = obj("name1");
var b = new obj;

    1.if(name){ this.name = name;}return this;
    2.prototype.name
8.javascript 语言特性中,有很多方面和我们接触的其他编程语言不太一样,比如说,javascript语言实现继承机制

的核心就是 1 ,而不是Java语言那样的类式继承。Javascript 解析引擎在读取一个Object的属性的值时,会沿着 2

向上寻找,如果最终没有找到,则该属性值为 3 ; 如果最终找到该属性的值,则返回结果。与这个过程不同的是,

当javascript解析引擎执行“给一个Object的某个属性赋值”的时候,如果当前Object存在该属性,则改写该属性的

值,如果当前的Object本身并不存在该属性,则赋值该属性的值 。

    1. prototype
    2.原型链
    3.undefined



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值