我是靠谱客的博主 勤恳斑马,最近开发中收集的这篇文章主要介绍面试题笔记,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

为什么导出方式会有两种?export default 和 export 区别是什么

1.export与export default均可用于导出常量、函数、文件、模块等
2.在一个文件或模块中,export、import可以有多个,export default仅有一个
3.通过export方式导出,在导入时要加{ },export default则不需要
4.
(1) 输出单个值,使用export default
(2) 输出多个值,使用export 【注意:引入时要加花括号 import { A } from " B" 】解构引入
(3) export default与普通的export不要同时使用

示例:

1.export
//a.js

export const str = “blablabla~”;
export function log(sth) {
return sth;
}

对应的导入方式:

//b.js
import { str, log } from ‘a’; //也可以分开写两次,导入的时候带花括号

2.export default
//a.js

const str = “blablabla~”;
export default str;
其实此处相当于为str变量值"

"起了一个系统默认的变量名default,自然default只能有一个值,所以一个文件内不能有多个export default。
对应的导入方式: //b.js import str from ‘a’; //导入的时候没有花括号
本质上,a.js文件的export default输出一个叫做default的变量,然后系统允许你为它取任意名字。所以可以为import的模块起任何变量名,且不需要用大括号包含

import的文件会自动执行一次。

import会加载且仅加载一次导入的模块

ES6模块化与commonjs、amd区别:

ES6 模块的设计思想是尽量的静态化,使得编译时就能确定模块的依赖关系,以及输入和输出的变量。CommonJS 和 AMD 模块,都只能在运行时确定这些东西。

img

正则表达式构造函数var reg=new RegExp(“xxx”)与正则表达字面量var reg=//有什么不同?匹配邮箱的正则表达式?

答案:当使用RegExp()构造函数的时候,不仅需要转义引号(即"表示"),而且还需要双反斜杠(即 表示一个)。使用正则表达字面量的效率更高。

邮箱的正则匹配:

var regMail = /^([a-zA-Z0-9_ -])+@([a-zA-Z0-9_ -])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/;

JavaScript中,以下哪条语句一定会产生运行错误?

A、var_变量=NaN

B、var 0bj = [ ] ;

C、var obj = //;

D、var obj ={};

答案(B)

以下两个变量a和b,a+b的哪个结果是NaN?

A、var a=undefind; b=NaN

B、var a=‘123’; b=NaN

C、var a =undefined , b =NaN

D、var a=NaN , b=’undefined‘

答案(C)

var a=10; b=20; c=4; ++b+c+a++ 以下哪个结果是正确的?

A、34

B、35

C、36

D、37

答案(B)

下面的JavaScript语句中,( D )实现检索当前页面中的表单元素中的所有文本框,并将它们全部清空

A. for(vari=0;i< form1.elements.length;i++) {

if(form1.elements.type==”text”)

form1.elements.value=”";}

B. for(vari=0;i<document.forms.length;i++) {

if(forms[0].elements.type==”text”)

forms[0].elements.value=”";}

C. if(document.form.elements.type==”text”)

form.elements.value=”";

D. for(vari=0;i<document.forms.length; i++){

for(var j=0;j<document.forms.elements.length; j++){

if(document.forms.elements[j].type==”text”)

document.forms.elements[j].value=”";

}

}

以下哪条语句会产生运行错误:(A)

A.var obj = ();

B.var obj = [];

C.var obj = {};

D.var obj = //;

以下哪个单词不属于javascript保留字:(B)

A.with

B.parent

C.class

D.void

请选择结果为真的表达式:(C)

A.null instanceof Object

B.null === undefined

C.null == undefined

D.NaN == NaN

阅读以下代码,请分析出结果:

var arr = new Array(1 ,3 ,5);

arr[4]='z';

arr2 = arr.reverse();

arr3 = arr.concat(arr2);

alert(arr3);

弹出提示对话框:z,5,3,1,z,5,3,1

补充按钮事件的函数,确认用户是否退出当前页面,确认之后关闭窗口; < html >

<head>

<script
type=”text/javascript” >

function closeWin(){

//在此处添加代码

if(confirm(“确定要退出吗?”)){

window.close(); 

}

}

</script>

</head>

<body>

<input type=”button”value=”关闭窗口”onclick=”closeWin()”/>

</body>

</html>

完成foo()函数的内容,要求能够弹出对话框提示当前选中的是第几个单选框。

<html>

<head>

<metahttp-equiv=”Content-Type” content=”text/html;charset=utf-8″ />

</head>

<body>

<script
type=”text/javascript” >

function foo() {

//在此处添加代码

var rdo =document.form1.radioGroup;

for(var i =0 ;i<rdo.length;i++){

if(rdo.checked){

alert(“您选择的是第”+(i+1)+”个单选框”);

} 

}

}

</script>

<body>

<form name="form1″ >

<input type="radio" name="radioGroup"/>

<input type="radio" name="radioGroup"/>

<input type="radio" name="radioGroup"/>

<input type="radio" name="radioGroup"/>

<input type="submit"/>

</form>

</body>

</html>

完成函数showImg(),要求能够动态根据下拉列表的选项变化,更新图片的显示

<body>

<script
type=”text/javascript” >

function showImg (oSel) {

//在此处添加代码 

var str = oSel.value;

document.getElementById(“pic”).src= str+”.jpg”;

}

</script>

<img
id=”pic”src=”img1.jpg”width=”200″ height=”200″ />

<br />

<select id="sel">

<option value="img1">城市生活</option>

<option value="img2">都市早报</option>

<option value="img3">青山绿水</option>

</select></body>

截取字符串abcdefg的efg

alert(‘abcdefg’.substring(4));

列举浏览器对象模型BOM里常用的至少4个对象,并列举window对象的常用方法至少5个

对象:Window document location screen history navigator

方法:Alert() confirm() prompt() open() close()

简述列举文档对象模型DOM里document的常用的查找访问节点的方法并做简单说明

Document.getElementById 根据元素id查找元素

Document.getElementByName 根据元素name查找元素

Document.getElementTagName 根据指定的元素名查找元素

简述创建函数的几种方式

第一种(函数声明):

function sum1(num1,num2){

   return num1+num2;

}

第二种(函数表达式):

var sum2 = function(num1,num2){

   return num1+num2;

}

第三种(函数对象方式):

var sum3 = new Function("num1","num2","return num1+num2");

Javascript如何实现继承?

原型链继承,借用构造函数继承,组合继承,寄生式继承,寄生组合继承

iframe的优缺点?

优点:

  1. 解决加载缓慢的第三方内容如图标和广告等的加载问题

  2. Security sandbox

  3. 并行加载脚本

缺点:

  1. iframe会阻塞主页面的Onload事件

  2. 即时内容为空,加载也需要时间

  3. 没有语意

请你谈谈Cookie的弊端?

缺点:

1.Cookie数量和长度的限制。每个domain最多只能有20条cookie,每个cookie长度不能超过4KB,否则会被截掉。

2.安全性问题。如果cookie被人拦截了,那人就可以取得所有的session信息。即使加密也与事无补,因为拦截者并不需要知道cookie的意义,他只要原样转发cookie就可以达到目的了。

有些状态不可能保存在客户端。例如,为了防止重复提交表单,我们需要在服务器端保存一个计数器。如果我们把这个计数器保存在客户端,那么它起不到任何作用。

DOM操作——怎样添加、移除、移动、复制、创建和查找节点。

  1. 创建新节点

createDocumentFragment() // 创建一个DOM片段

createElement() // 创建一个具体的元素

createTextNode() // 创建一个文本节点

  1. 添加、移除、替换、插入

appendChild()

removeChild()

replaceChild()

insertBefore() // 在已有的子节点前插入一个新的子节点

  1. 查找

getElementsByTagName() // 通过标签名称

getElementsByName() // 通过元素的Name属性的值(IE容错能力较强,会得到一个数组,其中包括id等于name值的)

getElementById() // 通过元素Id,唯一性

判断一个字符串中出现次数最多的字符,统计这个次数

答:

var str = 'asdfssaaasasasasaa';
 var json = {};
 for (var i = 0; i < str.length; i++) {
         if(!json[str.charAt(i)]){
                 json[str.charAt(i)] = 1;
         }else{
                 json[str.charAt(i)]++;
         }
 };
 var iMax = 0;
 var iIndex = '';
 for(var i in json){
         if(json[i]>iMax){
                 iMax = json[i];
                 iIndex = i;
         }
 }

alert(‘出现次数最多的是:’+iIndex+‘出现’+iMax+‘次’);

解释jsonp的原理,以及为什么不是真正的ajax

动态创建script标签,回调函数

Ajax是页面无刷新请求数据操作

document load 和document ready的区别

Document.onload 是在结构和样式加载完才执行js

Document.ready原生种没有这个方法,jquery中有 $().ready(function)

将数字 12345678 转化成 RMB形式 如: 12,345,678

//个人方法;

//思路:先将数字转为字符, str= str + ‘’ ;

//利用反转函数,每三位字符加一个 ','最后一位不加; re()是自定义的反转函数,最后再反转回去

for(var i = 1; i <= re(str).length; i++){

    tmp += re(str)[i - 1];

    if(i % 3 == 0 && i != re(str).length){

        tmp += ',';
    }
}

window.location.search() 返回的是什么?

答:查询(参数)部分。除了给动态语言赋值以外,我们同样可以给静态页面,并使用javascript来获得相信应的参数值

    返回值:?ver=1.0&id=timlq 也就是问号后面的!

window.location.hash 返回的是什么?

答:锚点 , 返回值:#love ;

阻止冒泡函数

function stopPropagation(e) {  

    e = e || window.event;  

    if(e.stopPropagation) { //W3C阻止冒泡方法  

        e.stopPropagation();  

    } else {  

        e.cancelBubble = true; //IE阻止冒泡方法  

    }  

}  

document.getElementById('need_hide').onclick = function(e) {  

    stopPropagation(e);  

}

什么是闭包?写一个简单的闭包?

答:我的理解是,闭包就是能够读取其他函数内部变量的函数。在本质上,闭包就是将函数内部和函数外部链接起来的一座桥梁。

function outer(){
    var num = 1;
    function inner(){
        var n = 2;
        alert(n + num);
    }
    return inner;
}
outer()();

最后

以上就是勤恳斑马为你收集整理的面试题笔记的全部内容,希望文章能够帮你解决面试题笔记所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部