1.alert(1&&2),alert(1||0)

alert(1&&2)的结果是2

只要“&&”前面是false,无论“&&”后面是true还是false,结果都将返“&&”前面的值;

只要“&&”前面是true,无论“&&”后面是true还是false,结果都将返“&&”后面的值;

这个就是只有前面的为对,才能进行下去,而且必须有个返回值。这里主要是因为只有前面的为true,才会进行后面的运算,返回的就是后面的值。如果前面的是false,后面的也就没有意义,直接返回前面的结果。

alert(0||1)的结果是1

只要“||”前面为false,不管“||”后面是true还是false,都返回“||”后面的值。

只要“||”前面为true,不管“||”后面是true还是false,都返回“||”前面的值。

这样的就是有个对的就行,但是必须有个返回值,前面的为true,就直接返回前面的值,如果前面的为false,就返回后面的值。

2.mouseenter和mouseover的区别 

不论鼠标指针穿过被选元素或其子元素,都会触发 mouseover 事件。对应mouseout

只有在鼠标指针穿过被选元素时,才会触发 mouseenter 事件。对应mouseleave

因此在定义鼠标位置使用mouseover的时候会出现常见的冒泡现象。

阻止冒泡的方法

W3C: 事件对象.stoppropogation(),

IE:  事件对象.cancelBubble=true;

3、正则表达式

用正则表达式匹配字符串,以字母开头,后面是数字、字符串或者下划线,长度为9-20

var reg=new RegExp("^[a-zA-Z][a-zA-Z0-9_]{9,20}$");

正则表达式分析身份证号码

身份证号码 = 6位地址编码 + 8位出生日期 + 4位顺序号

例如:出生日期在1800-2099之间的人的身份证号码的出生日期部分的正则

(18|19|20){0,1}\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01]);
(18|19|20){0,1}\d{2} 确定年份,
(18|19|20){0,1} 确定年份的前两位 (18|19|20)中匹配,{0,1}表示匹配前一项至少0次最多一次
\d{2} 确定年份的后两位 \d表示匹配[0-9]中的任何一个数,匹配两次 (0[1-9]|1[012]) 确定月份,
0[1-9] 匹配01月-09月,首位是0,在1-9中选一位
1[012] 匹配10月-12月,首位是1,在[012]中选一位 0[1-9]|[12]\d|3[01] 确定日期
0[1-9] 确定01日-09日
[12]\d 确定10日-29日
3[01] 确定30号-31号

正则表达式不能含有特殊字符

var reg=new RegExp("^[\u4E00-\u9FA5a-zA-Z0-9_]{1,20}$");

reg.test("要检测的字符串");

test是reg的一个方法符合条件是true,不符合条件返回false

4、数据存储

数据存储的几种方式

cookie在客户端存储数据并发送给服务端,用来存储,获取、删除,要设置过期时间,否则浏览器关闭时过期、但是只能存储字符串类型,以文本的形式,

localStorage:存储在本地不会发送到服务器,无时间限制,除非手动删除,但是只有新的浏览器才支持。

session通过类似哈希表的数据结构来存储,能支持任何类型的数据对象,能够含有多个对象,没有大小控制,安全性较高,保存在服务器,随着保存东西的增多,对于用户较多的网站,服务器的压力会变大。

cookie的存取

存:

       var expireDate = new Date();

         expireDate.setYear(expireDate.getYear()+1900+1);

         $cookies.put('account',data.user,{'expires':expireDate.toUTCString()});

取:

 $scope.user = $cookies.get('account');

LocalStorage的存取

存:

localStorage.setItem(“name”,”星星”);

取:

     var username =  localStorage.getItem(“name”);

session的存取

存:

 sessionStorage.setItem("cardId",keyCardId);

取:

 var cardId = sessionStorage.getItem("cardId");

5、有关作用域和异常捕获

分析下面代码的输出结果

1、

if(true){
var a = 1;
}
cosole.log(a);

这种情况打印出来是1,因为定义变量在没有函数名称包围的时候,javascript相当于一个大的函数,在if中定义的变量相当于全局变量。

2、

function aaa(){
var a = 1;
console.log(a);
}
console.log(a);
aaa();

这种情况打印的是''a未定义'',函数aaa()不再执行,因为上面的报错会影响下面函数的执行。

3、如何让报错不影响呢,我们可以用try catch

function aaa(){
var a = 1;
console.log(a);
}
try{
console.log(a);
}catch(e){
}
aaa();

使用try catch把可能出错的console.log(a)包裹起来,这样在这段出问题的时候就不会影响后面的函数的执行。
4、看trycatch是如何打印出来的

try{
console.log(a);
}catch(e){
console.log(e);
}

这样就可以看到问题具体出在哪里了,而且不会影响后续函数的执行。打印结果如下:

[object Error]{description: "“a”未定义", message: "“a”未定义", name: "ReferenceEr...", number: -2146823279, stack: "ReferenceEr..."}

前端javaScript经典面试题的更多相关文章

  1. JavaScript经典面试题(二)

    前言: 近年来T行业就业者越来越多,有关于编程行业的高薪工作也变得越来越难找,竞争力越来越大,想要在众多的应聘者当中脱颖而出,面试题和笔试题一定要多加研究和琢磨,以下记录的是自己的面试过程之中遇到的一 ...

  2. 20道JavaScript经典面试题

    该篇文章整理了一些前端经典面试题,附带详解,涉及到JavaScript多方面知识点,满满都是干货-建议收藏阅读 前言 如果这篇文章有帮助到你,️关注+点赞️鼓励一下作者,文章公众号首发,关注 前端南玖 ...

  3. 前端必会的Javascript经典面试题

    这是前端最基础的问题,也是在面试中难倒无数同学的经典问题 01. Javascript 数据类型 Javascript 数据类型 = 基本类型 + 引用类型 ES6 之前 5 + 1 = 6 种 ES ...

  4. javascript经典面试题之for循环click

    经典重现 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf- ...

  5. JavaScript经典面试题系列

    1.javascript的typeof返回哪些数据类型 Object number function boolean underfind 2.例举3种强制类型转换和2种隐式类型转换? 强制(parse ...

  6. JavaScript经典作用域问题(转载)

    题目 var a = 10; function test(){ a = 100; console.log(a); console.log(this.a); var a; console.log(a); ...

  7. web前端经典面试题大全及答案

    阅读目录 JavaScript部分 JQurey部分 HTML/CSS部分 正则表达式 开发及性能优化部分 本篇收录了一些面试中经常会遇到的经典面试题以及自己面试过程中遇到的一些问题,并且都给出了我在 ...

  8. Web前端经典面试试题(一)

    本篇收录了一些面试中经常会遇到的经典面试题,并且都给出了我在网上收集的答案.眼看新的一年马上就要开始了,相信很多的前端开发者会有一些跳槽的悸动,通过对本篇知识的整理以及经验的总结,希望能帮到更多的前端 ...

  9. Web前端经典面试试题(二)

    上次由于时间有限只分享了一部分的前端面试题,所以本篇继续分享前端经典面试试题 一. 栈和队列的区别? 栈的插入和删除操作都是在一端进行的,而队列的操作却是在两端进行的. 队列先进先出,栈先进后出. 栈 ...

随机推荐

  1. 纯CSS实现Tab切换标签效果代码

    在线演示地址如下: http://demo.jb51.net/js/2015/css-tab-bq-style-cha-codes/ <!DOCTYPE html PUBLIC "-/ ...

  2. 转:SQL Server附加数据库提示“版本为661,无法打开,支持655版本……”

    在我们使用别人导出的数据库的时候,有时候我们会通过附加数据库的方法,把别人导出的数据库附加到我们的电脑中,这时,或许你会遇到这种问题,附加时,提示版本为XXX,无法打开,支持AAA版本. 这是怎么回事 ...

  3. ideal环境maven自动下载项目依赖配置

    开篇序言 最近在使用ideal软件对springboot进行开发研究,中间遇到的环境和创建springboot遇到的问题真是玲琅满目,但是遇到问题就要克服这是万年不变的真理. 该文档会后续不断的补充, ...

  4. Oracle运行依赖的服务

    1.Oracle ORCL VSS Writer Service. Oracle卷映射拷贝写入服务,VSS(Volume Shadow Copy Service)能够让存储基础设备(比如磁盘,阵列等) ...

  5. 2015年创新工场校园招聘软件研发岗位笔试题目——矩阵旋转

    题目要求:给出一个NxN的矩阵,写出程序将该矩阵进行顺时针旋转90度 // matrixrotation.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h ...

  6. 安装字体或直接调用非注册字体 z

    1.安装字体//程序直接将字体文件安装的系统中.函数声明:[DllImport("kernel32.dll", SetLastError = true)] static exter ...

  7. Using nxlog4go for Testing Environment

    nxlog4go is very simple to use without any configuring, setting. For example: package main import ( ...

  8. C++11新特性之 std::forward(完美转发)

    我们也要时刻清醒,有时候右值会转为左值,左值会转为右值. (也许“转换”二字用的不是很准确) 如果我们要避免这种转换呢? 我们需要一种方法能按照参数原来的类型转发到另一个函数中,这才完美,我们称之为完 ...

  9. Batch Normalization:Accelerating Deep Network Training by Reducing Internal Covariate Shift(BN)

    internal covariate shift(ics):训练深度神经网络是复杂的,因为在训练过程中,每层的输入分布会随着之前层的参数变化而发生变化.所以训练需要更小的学习速度和careful参数初 ...

  10. WebClient设置Expect: 100-continue

    今天使用WebClient进行post发送数据的时候.总是无响应.实在没办法了.只好用fiddler抓包看一看.自己构造请求看哪里有问题. 发现请求头加上这句话后就无响应了.Expect: 100-c ...