Javascript面试题总结(一)

1、JavaScript 是一门什么样的语言,它有哪些特点?
javaScript 一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它
的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML
网页上使用,用来给HTML网页增加动态功能。JavaScript兼容于ECMA标准,因此也称为ECMAScript。
基本特点
1.是一种解释性脚本语言(代码不进行预编译)。
2.主要用来向 HTML(标准通用标记语言下的一个应用)页面添加交互行为。
3.可以直接嵌入 HTML 页面,但写成单独的 js 文件有利于结构和行为的分离。
4.跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行(如 Windows、Linux、Mac、
Android、iOS 等)。

2、javascript 的本地对象,内置对象和宿主对象
本地对象为 array obj regexp 等可以 new 实例化
内置对象为 gload Math 等不可以实例化的
宿主为浏览器自带的 document,window 等

3、js 的内置对象有哪些?列举一下 arry 和 string 的常用方法?
JavaScript 常见的内置对象有 Object,Math,String,Array,Number,Function,Boolean,JSON 等,其中 Object
是所有对象的基类,采用了原型继承方式. String:charAt(); charCodeAt(); indexOf(); match(); replace(); search(); slice(); toUpperCase();
toLowerCase(); 等方法
Array:shift(); unshift(); pop(); push(); concat(); reverse(); splice(); slice(); 等方法

4、例举 3 种强制类型转换和 2 种隐式类型转换?
强制:parseInt()、parseFloat()、Number()
隐式:== 、console.log()、alert()

5.特别注意的坑
(1)undefined与undefined的比较

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

(2) null与undefined之间的比较

           var a;
           var b=null;
           console.log(a==b);//true

(3) NaN与NaN之间的比较

            var a,b=3;
            console.log(a/b);//NaN
            console.log(a/b==a*b);//false

(4) null与null之间的比较

              var a=null,b=null;
              console.log(a===b);//true

(5)null的类型

           var a=null;
           console.log(typeof a);//object

(6)NaN的类型

         var a=5,b;
         var c=a/b;
         console.log(typeof c);// typeof NaN      number
         console.log(Number.MIN_VALUE>0);//无限接近于0,大于0
         console.log(Infinity>0);//正无穷大

  **(7) undefined的类型**
         var a;
         console.log(typeof typeof a); //"undefined" --->string

6、JS 的 typeof 返回哪种数据类型?

基 本 数 据 类 型 : String,boolean,Number,Undefined, Null, ; 引 用 数 据 类 型 :
Object(Array,Date,RegExp,Function)
如何判断某变量是否为数组数据类型?
if(typeof Array.isArray===“undefined”)
{
Array.isArray = function(arg){
return Object.prototype.toString.call(arg)==="[object Array]"
};
}
补充:null 是一个表示"无"的对象,转为数值时为 0;undefined 是一个表示"无"的原始值,转为数值时
为 NaN。
当声明的变量还未被初始化时,变量的默认值为 undefined。 null 用来表示尚未存在的对象,常用来表
示函数企图返回一个不存在的对象。
undefined 表示"缺少值",就是此处应该有一个值,但是还没有定义。典型用法是:
(1)变量被声明了,但没有赋值时,就等于 undefined。
(2) 调用函数时,应该提供的参数没有提供,该参数等于 undefined。
(3)对象没有赋值的属性,该属性的值为 undefined。
(4)函数没有返回值时,默认返回 undefined。
null 表示"没有对象",即该处不应该有值。典型用法是:
(1) 作为函数的参数,表示该函数的参数不是对象。
(2) 作为对象原型链的终点。
7、null 和 undefined 的区别?
null 是一个表示”无”的对象,转为数值时为 0;undefined 是一个表示”无”的原始值,转为数值时为 NaN。
当声明的变量还未被初始化时,变量的默认值为 undefined。
null 用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。
undefined 表示”缺少值”,就是此处应该有一个值,但是还没有定义。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值