javascript阶段测试
一.基础简答题
- eval是做什么的?
答:它的功能是把对应的字符串解析成JS代码并运行
- 什么是window对象? 什么是document对象?
答:window对象即是访问浏览器的一个接口,也是规定的一个全局对象。在全局作用域中声明的任何一个变量,函数都会成为window对象的属性和方法。
document对象是window对象的子对象,可直接使用,多用于获取HTML页面元素
- null,undefined 的区别?
Undefined类型只有一个值,即undefined。当声明的变量还未被初始化时,变量的默认值为undefined。
Null类型也只有一个值,即null。null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。
- javascript 代码中的"usestrict";是什么意思 ? 使用它区别是什么?
答; 进入”严格模式”的标志,老版本的浏览器会把它当作一行普通字符串,加以忽略
将”use strict”放在脚本文件的第一行,则整个脚本都将以”严格模式”运行。如果这行语句不在第一行,则无效,整个脚本以”正常模式”运行。如果不同模式的代码文件合并成一个文件,这一点需要特别注意。
(严格地说,只要前面不是产生实际运行结果的语句,”use strict”可以不在第一行,比如直接跟在一个空的分号后面。)
将”use strict”放在函数体的第一行,则整个函数以”严格模式”运行
因为第一种调用方法不利于文件合并,所以更好的做法是,借用第二种方法,将整个脚本文件放在一个立即执行的匿名函数之中
– 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;
– 消除代码运行的一些不安全之处,保证代码运行的安全;
– 提高编译器效率,增加运行速度;
– 为未来新版本的Javascript做好铺垫。
-
javascript中,有一个函数,执行时对象查找时,永远不会去查找原型,这个函数是?
hasOwnProperty
-
js延迟加载的方式有哪些?
答 共有:defer和async、动态创建DOM方式(用得最多)、按需异步载入js
- javascript的typeof返回哪些数据类型
答:1、number(数字类型) 2、boolean(布尔类型) 3、string(字符串类型) 4、undefined 5、object(对象类型) 6、function 7、symbol(es6新增类型)
- 例举3种强制类型转换和2种隐式类型转换?
强制转换
var a=“1.5”;
parseint(a);
parsefloat(a);
number(a);
隐式转换
10==“10” 返回true
- split() 、join() 的区别
答:split()用于分割字符串,返回一个数组,
join()用于连接多个字符或字符串,返回值为一个字符串;
- 数组方法pop()push() unshift() shift()
pop() 删除数组最后一项,没有参数,返回值删除项,原数组改变;
push() 向数组末尾添加新的数组项,返回值新数组的长度,原数组改变;
unshift() 向数组开头位置添加,返回值是新数组的长度,原数组改变;
shift() 删除数组第一项,没有参数,返回值删除项,原数组改变;
- 事件绑定和普通事件有什么区别
答:普通事件中的onclick只支持单个事件,会被其他onclick事件覆盖,而事件绑定中的addEventListener可以添加多个事件,而不用担心被覆盖。并且普通方式绑定事件后,不可以取消。addEventListener绑定后则可以用removeEvenListener取消
- 如何阻止事件冒泡和事件默认行为
使用event.stopPropagation()起到阻止捕获和冒泡阶段中当前事件的进一步传播。
使用event.preventDefault()可以取消默认事件。
13.window.onload 和document ready的区别
一是ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件);
二是onload,指示页面包含图片等文件在内的所有元素都加载完成。
- ””和“=”的不同
表示在比较时不会考虑数据类型 如:2“2”;返回true
=表示在比较时同时会对比数据类型 如:2“2”;返回false
- javascript是一门什么样的语言,它有哪些特点?
一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML网页上使用,用来给HTML网页增加动态功能。JavaScript兼容于ECMA标准,因此也称为ECMAScript。
Javascript的特点:
一、简单性:
JavaScript是一种基于Java基本语句和控制流之上的简单而紧凑的设计,从而对于学习Java是一种非常好的过渡。它的变量类型是采用弱类型,并未使用严格的数据类型。
二、动态性:
avaScript是动态的,它可以直接对用户或客户输入做出响应,无须经过Web服务程序。它对用户的反映响应,是采用以事件驱动的方式进行的。所谓事件驱动,就是指在主页(Home Page)中执行了某种操作所产生的动作,就称为“事件”(Event)。比如按下鼠标、移动窗口、选择菜单等都可以视为事件。当事件发生后,可能会引起相应的事件响应。
三、跨平台性:
JavaScript是依赖于浏览器本身,与操作环境无关,只要能运行浏览器的计算机,并支持JavaScript的浏览器就可正确执行。从而实现了“编写一次,走遍天下”的梦想。
四、安全性:
JavaScript是一种安全性语言,它不允许访问本地的硬盘,并不能将数据存入到服务器上,不允许对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互。从而有效地防止数据的丢失。
- javascript的数据类型都有什么?
基本数据类型6种:String、boolean、Number、Undefined、Null;
引用数据类型:Object (Array,Date,RegExp,Function)
- 输出今天的日期,以yyyy-mm-dd的方式,比如今天是2019年7月19日,则输出2019-07-19
var a=prompt(‘请输入年’);
Var b=prompt(‘请输入月’);
Var c=prompt(‘请输入日’);
Document.write(a+’-’+b+’-’+c);
- 谈谈对this的理解
This表示的时当前调用的元素
在构造函数中this表示实例化的对象
在事件中表示的时触发事件的元素
- js继承方式及其优缺点
是通过构造函数的原型进行继承,
数据数据共享 减少代码冗余
- 同步和异步的区别?
同步:
同步的思想是:所有的操作都做完,才返回给用户。这样用户在线等待的时间太长,给用户一种卡死了的感觉(就是系统迁移中,点击了迁移,界面就不动了,但是程序还在执行,卡死了的感觉)。这种情况下,用户不能关闭界面,如果关闭了,即迁移程序就中断了。
异步:
将用户请求放入消息队列,并反馈给用户,系统迁移程序已经启动,你可以关闭浏览器了。然后程序再慢慢地去写入数据库去。这就是异步。但是用户没有卡死的感觉,会告诉你,你的请求系统已经响应了。你可以关闭界面了。
同步,是所有的操作都做完,才返回给用户结果。即写完数据库之后,在相应用户,用户体验不好。
异步,不用等所有操作等做完,就相应用户请求。即先相应用户请求,然后慢慢去写数据库,用户体验较好。
- 箭头函数
箭头函数表达式的语法比函数表达式更简洁,并且没有自己的this,arguments,super或 new.target。这些函数表达式更适用于那些本来需要匿名函数的地方,并且它们不能用作构造函数。