作者:樱桃小丸子儿

链接:https://www.jianshu.com/p/abadcc84e2a4

JavaScript

JS的基本数据类型

number,string,boolean,object,undefined

JavaScript中如何检测一个变量是一个String类型?请写出函数实现

function(obj) {  return typeof(obj) == ”string”; } 

JavaScript的DOM是什么意思?

DOM是W3C的对象模型,DOM是中立于平台和语言的接口,它允许程序和脚本动态的访问和更新文档的内容结构和样式。

如何显示/隐藏一个DOM元素

更改元素的css style,设为display: none。此外还可以将visibility设为hidden,透明度设为0,或长、宽设为0。

JavaScript的节点是什么意思?

根据W3C的标准,HTML中文档的所有内容都是节点 ,整个文档是一个文档节点 ,每个html元素都是元素节点, Html元素中的文本是文本节点 ,每个html属性都是属性节点 ,注释是注释节点。

javascript对象的几种创建方式

1、工厂模式

2、构造函数模式

3、原型模式

4、混合构造函数和原型模式

5、动态原型模式

6、寄生构造函数模式

7、稳妥构造函数模式

javascript继承的6种方法

1、原型链继承

2、借用构造函数继承

3、组合继承(原型+借用构造)

4、原型式继承

5、寄生式继承

6、寄生组合式继承

JavaScript继承方式详解

NaN 是什么鬼?typeof 的结果是?如果一个变量的值是 NaN,怎么确定?

NaN 是 'not a number' 的缩写,表示 "不是一个数字",通常会在运算过程中产生:

console.log('abc' / 4); console.log(4 * 'a');

虽然它 "不是一个数字",但是 NaN 的 typeof 结果却是 number:

console.log(typeof (4 * 'a')); // number

NaN 和任何变量都不相等,包括 NaN 自己:

console.log(NaN === NaN); // false

判断一个变量是不是 NaN 可以用 isNaN()

函数,但是这并不是一个完美的函数,有些时候用value !== value似乎更准确,幸运的是,ES6 已经有Number.isNaN() 方法,将比 isNaN()准确的多。

怎样添加、移除、移动、复制、创建和查找节点?

创建新节点

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

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

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

添加、移除、替换、插入

appendChild() //添加

removeChild() //移除

replaceChild() //替换

insertBefore() //插入

查找

getElementsByTagName() //通过标签名称

getElementsByName() //通过元素的Name属性的值

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

documentload和documentready的区别

页面加载完成有两种事件

①load是当页面所有资源全部加载完成后(包括DOM文档树,css文件,js文件,图片资源等),执行的一个函数

问题:如果图片资源较多,加载时间较长,onload后等待执行的函数需要等待较长时间,所以一些效果可能受到影响

②$(document).ready()是当DOM文档树加载完成后执行一个函数 (不包含图片,css等)所以会比load较快执行。

在原生的jS中不包括ready()这个方法,只有load方法就是onload事件

事件绑定的几种方法?

以button的Click事件为例:

click mefunction clickBtn() {alert('click!');}

1、直接在元素上绑定回调函数

click me

2、JS获取DOM元素对象后,对onclick属性赋值,绑定事件: document.getElementById('btn').οnclick=clickBtn;

3、JS获取DOM对象后,调用对象的addEventListener函数绑定事件:document.getElementById('btn').addEventListener('click',clickBtn);

事件冒泡?

JavaScript事件冒泡简介及应用

在Javascript中什么是伪数组?如何将伪数组转化为标准数组?

伪数组(类数组):无法直接调用数组方法或期望length属性有什么特殊的行为,但仍可以对真正数组遍历方法来遍历它们。

典型的是函数的argument参数,还有像调用getElementsByTagName,document.childNodes之类的,它们都返回NodeList对象都属于伪数组。

可以使用Array.prototype.slice.call(fakeArray)将数组转化为真正的Array对象。

js将伪数组转换为标准数组的多种方法

常用JS框架都有什么?

前端Js框架汇总

Javascript中callee和caller的作用?

caller是返回一个对函数的引用,该函数调用了当前函数;

callee是返回正在被执行的function函数,也就是所指定的function对象的正文。

数组方法pop() push() unshift() shift()

push()尾部添加 pop()尾部删除 Unshift()头部添加 shift()头部删除

JavaScript中数组对象详解

为什么要用IIFE

简单来说就是为了能模块化,创建私有变量等等,很多类库(比如 jQuery)都用了这样的写法。

详解javascript立即执行函数表达式(IIFE)

严格模式下进行 Javascript 开发有啥好处?

参考阮一峰老师的Javascript 严格模式详解

Javascript 严格模式详解

Node.js的适用场景

高并发、聊天、实时消息推送

描述一下cookies

web前端面试题第五道—简述Cookie,在JS中如何操作Cookie?

事件是?IE与火狐的事件机制有什么区别? 如何阻止冒泡?

①我们在网页中的某个操作(有的操作对应多个事件)。例如:当我们点击一个按钮就会产生一个事件。是可以被 JavaScript 侦测到的行为。

② 事件处理机制:IE是事件冒泡、火狐是 事件捕获;

③ ev.stopPropagation();

如何判断一个对象是否属于某个类

使用instanceof

if(a instanceof Person)

{

alert('yes');

}

Javascript中,有一个函数,执行时对象查找时,永远不会去查找原型,这个函数是?

hasOwnProperty

js延迟加载的方式有哪些?

defer和async、动态创建DOM方式(用得最多)、按需异步载入js

javascript的本地对象,内置对象和宿主对象

本地对象为array obj regexp等可以new实例化

内置对象为gload Math 等不可以实例化的

宿主为浏览器自带的document,window 等

手写数组快速排序

关于快排算法的详细说明,可以参考阮一峰老师的文章快速排序

快速排序(Quicksort)的Javascript实现

“快速排序”的思想很简单,整个排序过程只需要三步:

(1)在数据集之中,选择一个元素作为”基准”(pivot)。

(2)所有小于”基准”的元素,都移到”基准”的左边;所有大于”基准”的元素,都移到”基准”的右边。

(3)对”基准”左边和右边的两个子集,不断重复第一步和第二步,直到所有子集只剩下一个元素为止。

统计字符串”aaaabbbccccddfgh”中字母个数或统计最多字母数。

varstr = "aaaabbbccccddfgh"; varobj = {}; for(vari=0;istr.length;i++){  varv = str.charAt(i);  if(obj[v]&obj[v].value == v){  obj[v].count = ++ obj[v].count; }else{  obj[v] = {};  obj[v].count = 1;  obj[v].value = v;  } } for(key inobj){  document.write(obj[key].value +'='+obj[key].count+' ');// a=4 b=3 c=4 d=2 f=1 g=1 h=1 }

写一个function,清除字符串前后的空格。(兼容所有浏览器)

functiontrim(str){  if(str&typeof str === "string"){  returnstr.replace(/(^s*)|(s*)$/g,"");//去除前后空白符  } }

如何制作一个combo选项

combo选项就是可以手动输入值,也可以选择下拉列表值的选项。

思路:

①布局select和input,让input覆盖select,除了select的下拉图标,以方便select选择。

②编写js,为select添加onchange事件,onchange时将input的value置成select选中的值。

这个网上有很多成品,大家可以自己试一下,下边给出一个。

实现一个combo选项

JavaScript中的load事件的作用_史上最全的web前端面试题汇总及答案JavaScript之二(二)...相关推荐

  1. javascript array添加图片_史上最全的web前端面试题汇总及答案JavaScript之二(二)...

    作者:樱桃小丸子儿 链接:https://www.jianshu.com/p/abadcc84e2a4 JavaScript JS的基本数据类型 number,string,boolean,objec ...

  2. html权重值_史上最全的web前端面试题汇总及答案HtmlCss(二)

    作者:樱桃小丸子儿 链接:https://www.jianshu.com/p/abadcc84e2a4 HTML&CSS img的alt和title的异同? **alt **是图片加载失败时, ...

  3. java 前端页面传过来的值怎么防止篡改_答对这40道经典web前端面试题,想不拿到offer都难!...

    想成功就业web前端工程师,想要能高薪就业,那么除了好的web前端技能以外,还得有好的面试技巧,如果提前就了解更多企业的面试要求及面试题目,那么可以让我们的面试成功的几率大大的提高. 今天小编就整理了 ...

  4. python常用面试题_史上最全Python工程师常见面试题集锦,有这一份就够了

    从互联网诞生以来,基本上所有的程序都属于网络程序,也就需要设计到网络编程,在python中,就是在python程序本身这进程内,链接别的服务器进程的通信端口进行通信.在Python程序员找工作的时候, ...

  5. 前端面试题汇总(JavaScript面试纯干货)

    前端面试题汇总(JavaScript面试纯干货) 1 闭包 闭包就是能够读取其他函数内部变量的函数 闭包是指有权访问另⼀个函数作⽤域中变量的函数,创建闭包的最常⻅的⽅式就是在⼀个函数内创建另⼀个函数, ...

  6. 键盘上每个键作用!!! (史上最全的~~精)

    键盘上每个键作用!!! (史上最全的~~精) F1帮助 A9\m .3jo  F2改名 Hq[d!qc  F3搜索 Q*}#?g  F4地址 h\".TySz  F5刷新 L9nv05B  ...

  7. 键盘上每个键作用!!! (史上最全的)­

    键盘上每个键作用!!! (史上最全的)­ F1帮助 ­ F2改名 ­ F3搜索 ­ F4地址 ­ F5刷新 ­ F6切换 ­ F10菜单 ­ CTRL+A全选 ­ CTRL+C复制 ­ CTRL+X剪 ...

  8. 「前端面试题系列7」Javascript 中的事件机制(从原生到框架)

    前言 这是前端面试题系列的第 7 篇,你可能错过了前面的篇章,可以在这里找到: 理解函数的柯里化 ES6 中箭头函数的用法 this 的原理以及用法 伪类与伪元素的区别及实战 如何实现一个圣杯布局? ...

  9. win7蓝屏_史上最全电脑蓝屏代码含义,Win7电脑蓝屏最全攻略

    电脑蓝屏大家或多或少的都遇到过,今天李哥为大家整理了这方面的内容,给大家来详细了解一下. 电脑蓝屏,又叫蓝屏死机,简称BSOD,是微软的 Windows 系列操作系统在无法从一个系统错误中恢复过来时, ...

最新文章

  1. std::bind介绍
  2. win7-64系统安装oracle 11G客户端
  3. SQL Server 问题之 排序规则(collation)冲突
  4. linux 遇到的问题
  5. REVERSE-PRACTICE-BUUCTF-13
  6. 【Python】 [基础] 条件判断 与 循环 与dict和set
  7. Moto X的谷歌基因
  8. 【Prison Break】第五天(4.1)
  9. 一如此前的回应,王劲将景驰科技总部搬到了广州
  10. fortran语言和python语言_Fortran常用语句
  11. paip.提升安全性-------生成一个安全的验证码
  12. wincc怎么做数据库_WINCC与数据库连接
  13. 一文解决十大排序算法(动画图解)
  14. 移动播放器html,支持移动平台的Html5播放器
  15. C语言实现一元多项式的加减运算
  16. Excel 2019:二级级联下拉框设置
  17. Python中当pip安装不成功的解决办法
  18. 架构模式-VIPER
  19. 3维旋转矩阵推导与助记
  20. MYSQL配置环境变量

热门文章

  1. Python 精要参考(第二版) 第六章 函数与函数编程
  2. 币知识——比特币现金
  3. Java零拷贝续——DirectByteBuffer内存回收
  4. Jsoup下载图片报错:UnsupportedMimeTypeException
  5. Redis实现参数的集中式管理
  6. Zookeeper集群 + Kafka集群 + KafkaOffsetMonitor 监控
  7. C#:异步编程和线程的使用(.NET 4.5 ),异步方法改为同步执行
  8. MultipartEntity与UrlEncodedFormEntity区别
  9. C++的那些事:你真的了解引用吗
  10. Windows 服务入门指南