目录
6.如果变量在函数内没有声明(没有使用 var 关键字),该变量为全局变量
8.===(类型和值都相等)、!== 和 ==、!= 的区别
11.用 typeof 检测 null 返回是object。undefined 的类型则是undefined。NaN 的数据类型是 number
14.请使用 isNaN() 来判断一个值是否是数字。原因是 NaN 与所有值都不相等,包括它自己
16.严格模式通过在脚本或函数的头部添加 "use strict"; 。严格模式下你不能使用未声明的变量
26.export 和 export default 的区别
JavaScript 的正式名称是 ECMAScript。
1.原生Javascript
原生:自带的,不需要引入任何东西的,可直接使用的。不用js框架(如JQuery),直接写原始的javascript。
2.!!的用法
if(!!a) 等价于 if(a!=null&&typeof(a)!=undefined&&a!='')。
3.JavaScript 可以通过不同的方式来输出数据
- 使用 window.alert() 弹出警告框。
- 使用 document.write() 方法将内容写到 HTML 文档中。
- 使用 innerHTML 写入到 HTML 元素。
- 使用 console.log() 写入到浏览器的控制台(按F12查看控制台)。
4.在 JavaScript 中,用分号来结束语句是可选的
5.JavaScript 拥有动态类型
这意味着相同的变量可用作不同的类型:
- var x = 5; // 现在 x 为数字
- var x = "John"; // 现在 x 为字符串
6.如果变量在函数内没有声明(没有使用 var 关键字),该变量为全局变量
7.全局变量在页面关闭后销毁
全局变量是 window 对象: 所有数据变量都属于 window 对象。调用方式:window.全局变量名。
8.===(类型和值都相等)、!== 和 ==、!= 的区别
- null==undefined //true
- 0=='' //true
- 0=='0' //true
- 0=='\t\r\n' //true
因为false等于0,故上述左侧0改为false也成立。
9.switch 语句会使用恒等计算符(===)进行比较。
10.js document.write()换行方式
因为要被html识别使用,不能用转义字符\n ,要使用br标签,("<br>")。
11.用 typeof 检测 null 返回是object。undefined 的类型则是undefined。NaN 的数据类型是 number
12.三种对象类型:Object,Date,Array
13.Date()方法
- getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。 即年月日的日
- getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)。 即周几
14.请使用 isNaN() 来判断一个值是否是数字。原因是 NaN 与所有值都不相等,包括它自己
15.Operator + 可用于将变量转换为数字
- var y = "5"; // y 是一个字符串
- var x = + y; // x 是一个数字
16.严格模式通过在脚本或函数的头部添加 "use strict"; 。严格模式下你不能使用未声明的变量
17.var和let的区别
var 声明的变量是全局的,包括循环体内与循环体外;但函数内var声明的变量为局部变量。let 声明的变量只在 let 命令所在的代码块 {} 内有效,在 {} 之外不能访问,也不影响 {} 外的同名变量;let 关键字定义的变量需要先声明再使用。
const定义常量与使用let类似, 定义的变量都是块级作用域。关键字let 和 const是ES2015(ES6) 新增的。
18.变量提升
函数声明和变量声明总是会被解释器悄悄地"提升"到方法体的最顶部。即变量可以先使用再声明。
19.argument 对象
argument 对象(隐式参数)包含了函数调用的参数数组,与C#的params(可变参数)类似。
20.查找 HTML 元素的三种方法
通过 id 找到 HTML 元素;通过标签名找到 HTML 元素;通过类名找到 HTML 元素。document.getElementById,getElementsByTagName,getElementsByClassName
21.事件传递有两种方式
冒泡与捕获。默认useCapture值为 false, 即冒泡传递。<div><p></p></div>
冒泡:点击p,先触发p后触发div。捕获则相反。
22.JavaScript 的三种弹窗
警告框window.alert()、确认框confirm()、提示框prompt()
23.JavaScript 计时事件
- setInterval() - 间隔指定的毫秒数不停地执行指定的代码。
- setTimeout() - 在指定的毫秒数后执行指定代码。
24.类的数据类型就是函数,类本身就指向构造函数
25.小数点前的0可忽略不写
如0.02可以写成:.02
26.export 和 export default 的区别
export
命令用于规定模块的对外接口。export命令对外接口是有名称的且
import
命令从模块导入的变量名与被导入模块对外接口的名称相同,而export default命令对外输出的变量名可以是任意的,这时import
命令后面,不使用大括号。
export default
命令用于指定模块的默认输出。显然,一个模块只能有一个默认输出,因此export default
命令只能使用一次。所以,import命令后面才不用加大括号,因为只可能唯一对应export default
命令。
27.AJAX
AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。
AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。
28.HTML使用CSS的方式
HTML插入样式表的方法有三种:
- 外部样式表(External style sheet)
- 内部样式表(Internal style sheet)
- 内联样式(Inline style)
29.HTML5 Web 存储
客户端存储数据的两个对象为:
- localStorage - 用于长久保存整个网站的数据,保存的数据没有过期时间,直到手动去除。
- sessionStorage - 用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。
30.静态页面HTML和动态页面jsp的区别
(1)html 静态页面
静态web页面,一般指html。
①在静态Web程序中,客户端使用Web浏览器(IE、FireFox等)经过网络(Network)连接到服务器上,使用HTTP协议发起一个请求(Request),告诉服务器我现在需要得到哪个页面,所有的请求交给Web服务器,之后WEB服务器根据用户的需要,从文件系统(存放了所有静态页面的磁盘)取出内容。之后通过Web服务器返回给客户端,客户端接收到内容之后经过浏览器渲染解析,得到显示的效果。
②静态web无法连接数据库。
③由于现在的web页面中,大量使用JS,导致浏览器打开页面,就会占用大量的内存,服务端的压力是减轻了,但压力转移到了客户端。
(2)jsp 动态页面
动态web页面,一般指jsp。
动态WEB中,程序依然使用客户端和服务端,客户端依然使用浏览器(IE、FireFox等),通过网络(Network)连接到服务器上,使用HTTP协议发起请求(Request),现在的所有请求都先经过一个WEB Server来处理。
- 如果客户端请求的是静态资源(*.htm或者是*.htm),则将请求直接转交给WEB服务器,之后WEB服务器从文件系统中取出内容,发送回客户端浏览器进行解析执行。
- 如果客户端请求的是动态资源(*.jsp、*.asp/*.aspx、*.php),则先将请求转交给WEB Container(WEB容器),在WEB Container中连接数据库,从数据库中取出数据等一系列操作后动态拼凑页面的展示内容,拼凑页面的展示内容后,把所有的展示内容交给WEB服务器,之后通过WEB服务器将内容发送回客户端浏览器进行解析执行。
(3)两者的区别
①静态页面就是设计者把页面上所有东西都设定好、做死了,然后放上去,不管是谁在任何时候看到的页面内容都是一样的,一成不变(除非手动修改页面内容)。静态html页面文件,可以直接用本地的浏览器打开。比如:file://Users/testJSP/index.html。
②动态页面的内容一般都是依靠服务器端的程序来生成的,不同人、不同时候访问页面,显示的内容都可能不同。网页设计者在写好服务器端的页面程序后,不需要手工控制,页面内容会按照页面程序的安排自动更改变换。