前端求职可能遇到的基础知识(三)

1.js的基本数据类型
(1)undefined类型:
转换成boolean类型时为false,转换成 number类型时NaN,null = = undefined为true,但是null= = = undefined为false。
(2)null类型:
转换成boolean类型时为false,转换成number类型为0,null = = undefined为true,但是null = = = undefined为false。
(3)boolean类型:
值有false和true,转换成number类型的值分别为0和1
(4)number类型:
转换成boolean类型时非0即是true。
(5)string类型:
转换boolean类型时非空串即是true,转换成number类型时,当字符串不是纯数字字符时,值为NaN,并且只能识别一次小数点。
2.js有哪些内置对象
(1)数据封装对象:Object、Array、Boolean、Number、String
(2)其他对象:Function、Argument、Math、Date、RegExp、Error
3.JavaScript的基本代码规范
(1)变量命名使用驼峰式命名规则
(2)switch语句必须有default分支
(3)构造函数名字首字母大写
(4)不在同一行声明多个变量
4.call和apply的作用和区别
(1)作用
call和apply的功能相同,都是实现继承或改变对象指针的指向。
(2)区别
区别就是传参方式不同,call的传参方式是一个个列出来,而apply是先存到数组中,再将数组传进去。
5.push()、pop()、shift()、unshift()、分别是什么功能
(1)push()—>将新元素添加到数组中,并返回数组的新的长度
(2)pop()----->移除数组中的最后一个元素并返回该元素
(3)shift()----->移除数组中的第一个元素并返回该元素
(4)unshift()—>将指定的元素插入数组开始的位置并返回该数组
6.JavaScript中this的工作原理
在函数中:this的指向是调用该函数的当前对象
在函数外:this的指向是全局对象
this与new的关系:当一个函数被new时,该函数就会创建一个this对象,并将该对象返回。
7.JavaScript中的原型和原型链及它们的特点
(1)原型和原型链
每个对象都会在内部初始化一个属性prototype(原型),原型prototype指向一个对象,对象里也有一个prototype属性。这个的prototype指向上一级的prototype就是原型链的概念。当访问一个对象的某个属性时,如果该对象内部不存在这个属性时,会自动顺着原型链一直找下去,一直找到头为止。
(2)特点
JavaScript对象是通过引用来传递的,新创建的对象实体没有自己的原型,原型是继承构造函数的。当修改构造函数的原型时,相关对象也继承这个修改。访问对象中某个变量时,如果自身不存在该属性,便会到原型中找。
8.JavaScript有几种类型值?区别时什么
(1)类型有两种:
堆:原始数据类型,如Undefined,Null,Boolean,Number,String
栈:引用数据类型:如对象、数组、函数
(2)区别
存储的位置不同:
原始数据类型直接存储在栈中的简单数据段,占据的空间小、大小固定、属于被频繁使用的数据,因此放入栈中存储。而引用数据类型存储在堆中的对象,占据的空间大,大小不固定。如果存储在栈中,将会影响程序运行的性能。引用数据类型再栈中存储指针,该指针指向堆中该实体的起始地址。当解释器查找引用值时,先检索其在栈中的地址,取得地址后从堆中 获得实体。
9.JavaScript中有哪些创建对象的方式
(1)构造函数模式:
例:function Test(name ,age){
this.name:name;
this.age :age;
}
var obj = new Test(‘name’,age);
(2)工厂模式:
例: function Test(name,age){
var obj = {
name:name,
age:age;
}
return obj;
}
var obj1 = Test(name,age);
(3)原型模式
例:function Test(){
Test.prototype.name:name,
Test.prototype.age:age;
}
var obj = new Test();
(4)原型模式+构造函数模式
例:function Test(name ,age){
this.name:name;
this.age :age;
}
Test.prototype={
gender:‘男’
};
var obj = new Test(‘name’,age);
10.null和undefined的区别
(1)含义不同
null表示一个对象被定义了,但是值为空值,没有任何属性和方法。
undefined表示不存在这个值,是一个表示无的原始值或者说表示缺少值,就是访问一个没有定义的值时,会返回undefined。例如,某变量声明了,但没有被赋值,此时的值就是undefined。
(2)类型不同:
typeof(undefined)值为“undefined”
typeof(null)值为“object”
但是nullundefined为true,null=undefined为false
11.什么是闭包,为什么使用闭包,它的特性是什么
闭包就是有权访问到另一个函数作用域中的变量和方法的函数。创建闭包的方法是,在一个函数中创建另一个函数,通过内部创建的函数访问该函数的变量。利用闭包可以突破作用域链,将函数内部的变量方法传递到外部。
它的特性:
(1)函数内部在创建函数
(2)内部函数可以引用外层的参数和变量
(3)参数和变量不会被垃圾回收机制回收。
12.new操作符的工作原理
(1)创建一个空对象,并且this变量引用该对象,同时继承该函数的原型。
(2)属性和方法传入到this引用的对象中
(3)新创建的对象由this引用,并且最后隐私返回this
13.hasOwnProperty的功能
hasOwnProperty是JavaScript中的一个函数,返回一个boolean值。它的功能是检查某个对象它自己本身是否存在某一个属性。该方法不会到该对象的原型链中查找。
使用方法:obj.hasOwnProperty(属性名);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值