面试题之–JavaScript篇
什么是JavaScript?
1.是一门脚本语言,通过JavaScript可以增加网页的交互功能,完成复杂的动态网页
2.是一门动态类型语言
3.是一门弱类型语言
JavaScript的组成:
1、ECMAScript 标准----js的基本语法
2、DOM---Document object model 文档对象模型
3、BOM---Browser object model 浏览器对象模型
JavaScript输出数据的方法:
使用 window.alert() 弹出警告框。
使用prompt("提示信息","输入框的默认信息")
使用 document.write() 方法将内容写到 HTML 文档中。
使用 innerHTML 写入到 HTML 元素。
使用 console.log() 写入到浏览器的控制台。
JavaScript的基本数据类型:
Null、Undefined、Boolean、String、Number、Object。其中Object是一种复杂数据类型。
javascript的typeof返回哪些数据类型.
string ,boolean, number, undefined, function, object
引用JavaScript的方式:
1.直接写在html5标签中
2.写在JavaScript标签里
3.引入外部js
例举3种强制类型转换和2种隐式类型转换?
强制:(parseInt,parseFloat,number)
隐式:(== ===)
””和“=”的不同
前者会自动转换类型,再判断是否相等
后者不会自动类型转换,直接去比较
如何判断一个变量的值是否为数字?以及有哪些手段判断变量值的数据类型?
全局函数isNaN可以判断一个变量的值是否为数字。
可以使用运算符type、instanceof判断变量值的数据类型。
如何区分数组和对象?
(1)从原型入手,Array.prototype.isPrototypeOf(obj); 利用isPrototypeOf()方法,判定Array是不是在obj的原型链中,如果是,则返回true,否则false。Array.prototype.isPrototype([]) //true
(2)也可以从构造函数入手,利用对向的constructor属性
(3)根据对象的class属性(类属性),跨原型链调用toString()方法。Object.prototype.toString.call(Window);
(4)Array.isArray()方法。
split() join() 的区别
前者是将字符串切割成数组的形式,后者是将数组转换成字符串
数组方法pop() push() unshift() shift()
push()尾部添加
pop()尾部删除
unshift()头部添加
shift()头部删除
call和apply的区别
①apply()函数有两个参数:第一个参数是上下文,第二个参数是参数组成的数组。如果上下文是null,则使用全局对象代替。
Object.call(this,obj1,obj2,obj3)
②call()的第一个参数是上下文,后续是实例传入的参数序列。
Object.apply(this,arguments)
JavaScript中的系统函数: