第一部分,取自文档·
-
JavaScript 是脚本语言。浏览器会在读取代码时,逐行地执行脚本代码。
-
document.write是直接写入到页面的内容流,如果在写之前没有调用document.open, 浏览器会自动调用open。每次写完关闭之后重新调用该函数,会导致页面被重写。
innerHTML则是DOM页面元素的一个属性,代表该元素的html内容。你可以精确到某一个具体的元素来进行更改。如果想修改document的内容,则需要修改document.documentElement.innerElement。
innerHTML很多情况下都优于document.write,其原因在于其允许更精确的控制要刷新页面的那一个部分。
-
值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol(ES6 引入了一种新的原始数据类型,表示独一无二的值。)。
引用数据类型:对象(Object)、数组(Array)、函数(Function)。
-
JavaScript 变量的生存期
JavaScript 变量的生命期从它们被声明的时间开始。
局部变量会在函数运行以后被删除。
全局变量会在页面关闭后被删除。
-
空文本 + 数字得到的运算结果都是把数字转成字符串,无论文本有多少个空格。但是空格会计入长度。
-
字符串和数字相加,数字转成字符串.
-
.数字和布尔值相加,布尔值 false 转成 0,true 转成 1
-
字符串与布尔值相加,布尔值转化成字符串。
-
数字与 null(空值) 相加,null 转化为数字 0:
-
字符串与 null(空值) 相加,null 转化为字符串:
-
如果 % 左边的操作数是正数,则模除的结果为正数或零;
-
如果 % 左边的操作数是负数,则模除的结果为负数或零。
-
===绝对相等
-
for in 循环不仅可以遍历对象的属性,还可以遍历数组。
-
for 循环除了使用 in 方式来循环数组,还提供了一个方式: of , 遍历数组时更加方便。
for...of 是 ES6 新引入的特性。它既比传统的for循环简洁,同时弥补了forEach和for-in循环的短板。
let iterable = "boo";
for (let value of iterable) {
console.log(value);
}循环字符串 -
break 语句用于跳出循环。
continue 用于跳过循环中的一个迭代。
-
(1)undefined:是所有没有赋值变量的默认值,自动赋值。
(2)null:主动释放一个变量引用的对象,表示一个变量不再指向任何对象地址。
-
当使用完一个比较大的对象时,需要对其进行释放内存时,设置为 null。
垃圾回收站
它是专门释放对象内存的一个程序。
-
(1)在底层,后台伴随当前程序同时运行;引擎会定时自动调用垃圾回收期;
-
(2)总有一个对象不再被任何变量引用时,才释放。
-
-
JavaScript 数据类型
在 JavaScript 中有 5 种不同的数据类型:
-
string
-
number
-
boolean
-
object
-
function
3 种对象类型:
-
Object
-
Date
-
Array
2 个不包含任何值的数据类型:
-
null
-
undefined
-
-
正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE)。正则表达式是由一个字符序列形成的搜索模式。
/正则表达式主体/修饰符(可选) var patt = /runoob/i
if(isNaN(x)) throw "值不是一个数字";即NaN可以用来判断一个数是否是数字。
-
严格模式通过在脚本或函数的头部添加 "use strict"; 表达式来声明。
为什么使用严格模式:
-
消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;
-
消除代码运行的一些不安全之处,保证代码运行的安全;
-
提高编译器效率,增加运行速度;
-
为未来新版本的Javascript做好铺垫。
-
-
ES2015(ES6) 新增加了两个重要的 JavaScript 关键字: let 和 const。
let 声明的变量只在 let 命令所在的代码块内有效。
const 声明一个只读的常量,一旦声明,常量的值就不能改变。
-
箭头函数
// ES5
var x = function(x, y) {
return x * y;
}
// ES6
const x = (x, y) => x * y;使用 const 比使用 var 更安全,因为函数表达式始终是一个常量。
-
闭包是一种保护私有变量的机制,在函数执行时形成私有的作用域,保护里面的私有变量不受外界干扰。
闭包就是子函数可以使用父函数的局部变量,还有父函数的参数。
-
绝对不要在文档(DOM)加载完成之后使用 document.write()。这会覆盖该文档。
-
事件句柄是指事件发生时要进行的操作。
-
事件冒泡或事件捕获?
事件传递有两种方式:冒泡与捕获。
在 冒泡 中,内部元素的事件会先被触发,然后再触发外部元素,即: <p> 元素的点击事件先触发,然后会触发 <div> 元素的点击事件。
在 捕获 中,外部元素的事件会先被触发,然后才会触发内部元素的事件,即: <div> 元素的点击事件先触发 ,然后再触发 <p> 元素的点击事件。
-
window.open() - 打开新窗口
window.close() - 关闭当前窗口
window.moveTo() - 移动当前窗口
window.resizeTo() - 调整当前窗口的尺寸
-
setInterval() - 间隔指定的毫秒数不停地执行指定的代码。
setTimeout() - 在指定的毫秒数后执行指定代码。
clearInterval() 方法用于停止 setInterval() 方法执行的函数代码。window.clearInterval(intervalVariable)
clearTimeout() 方法用于停止执行setTimeout()方法的函数代码。
-
Cookie 用于存储 web 页面的用户信息。当 web 服务器向浏览器发送 web 页面时,在连接关闭后,服务端不会记录用户的信息。
Cookie 的作用就是用于解决 "如何记录客户端的用户信息":
-
-
-