javascript教程
使用 window.alert() 写入警告框
使用 document.write() 写入 HTML 输出
使用 innerHTML 写入 HTML 元素
使用 console.log() 写入浏览器控制台
document.getElementById().innerHTML
let声明的变量,在块作用域
可以使用 let 关键词声明拥有块作用域的变量。在块 {} 内声明的变量无法从块外访问
通过 const 定义的变量与 let 变量类似,但不能重新赋值 声明变量时就赋值
== 值相等7'==7 true
=== 类型和值都相等'7'===7 false
javascript 数据类型对象和python字典相似
typeof 0 返回数据类型
没有值的变量,其值是 undefined 任何变量均可通过设置值为 undefined 进行清空。其类型也将是 undefined
访问没有 () 的函数将返回函数定义
在 JavaScript 函数中声明的变量,会成为函数的局部变量
this 引用该函数的“拥有者”
访问对象属性两种方法:objectName.propertyname; objextName['pwopertyName']
如果通过关键词 "new" 来声明 JavaScript 变量,则该变量会被创建为对象:
var x = new String(); // 把 x 声明为 String 对象
字符串:
内建属性 length 可返回字符串的长度:
\转义字符
indexOf() 方法返回字符串中指定文本首次出现的索引(位置)
lastIndexOf() 方法接受第二个参数作为搜索的起始位置,如果第二个参数是50相当于到第50位截止
search() 搜索字符串中的字符串
有三种提取部分字符串的方法:
slice(start, end) 起始索引终止索引
substring(start, end) 无法接受负的索引
substr(start, length)
替换字符串方法replace()
默认只替换首个匹配 替换所有匹配,请使用正则表达式的 g 标志
如需执行大小写不敏感的替换,请使用正则表达式 /i
toUpperCase() 把字符串转换为大写
toLowerCase() 把字符串转换为小写
concat() 连接两个或多个字符串
trim() 方法删除字符串两端的空白符
提取字符串字符
charAt(position) 返回下标位置的字符串
charCodeAt(position) 返回下标位置字符串的unicode编码
把字符串转换为数组 可以通过 split() 将字符串转换为数组 使用|和空格分隔a[0]返回,分隔的字符串
用于搜索字符串的 JavaScript 方法:
String.indexOf() 方法返回指定文本在字符串中第一次出现(的位置)的索引 第二个参数是从哪个位置开始
String.lastIndexOf()
String.startsWith() 如果以该字符串开头返回true
String.endsWith() 以指定值结尾
match() 方法根据正则表达式在字符串中搜索匹配项,并将匹配项作为 Array 对象返回
如果字符串包含指定值,includes() 方法返回 true
反斜杠``模板字面量提供了一种将变量和表达式插入字符串的简单方法 ${...}
数字
NaN
属于 JavaScript 保留词,指示某个数不是合法数。
尝试用一个非数字字符串进行除法会得到 NaN(Not a Number)
NaN 是数,typeof NaN 返回 number
Infinity
(或 -Infinity
)是 JavaScript 在计算数时超出最大可能数范围时返回的值
toString(“16”) 方法把数输出为十六进制、八进制或二进制
toString() 以字符串返回数值 x.toString()
toExponential()
返回字符串值,它包含已被四舍五入并使用指数计数法的数字
toFixed()
返回字符串值,它包含了指定位数小数的数字四舍五入
toPrecision()
返回字符串值,它包含了指定长度的数字
valueOf()
以数值返回数值
Number()
可用于把 JavaScript 变量转换为数值 Number()
还可以把日期转换为数字 时间簇
parseInt()
解析一段字符串并返回数值。允许空格。只返回首个数字(除了空格以数字开头否则返回NaN)
parseFloat()
解析一段字符串并返回数值。允许空格。只返回首个数字 (以小数点分割返回整个小数)
数组
var cars = new Array("Saab", "Volvo", "BMW");
访问方法和python类似通过引用索引号(下标号)来引用某个数组元素
length 属性返回元素的数量
sort() 方法对数组进行排序,默认地,sort()
函数按照字符串顺序对值进行排序
遍历数组for循环
for(i=0,i<11,i++)
也可以使用 Array.foreach() 函数:
fruits.forEach(myFunction);
function myFunction(kk) {
向数组添加新元素的最佳方法是使用 push() 方法:
添加最高索引的元素可在数组中创建未定义的“洞” (显示的是undefined)
Array.isArray()
:判断是否是数组
JavaScript 方法 toString() 把数组转换为数组值(逗号分隔)的字符串
join()方法和python中类似
pop() 方法从数组中删除最后一个元素
push()
方法(在数组结尾处)向数组添加一个新的元素:push() 方法返回新数组的长度
shift() 方法会删除首个数组元素
unshift()
方法(在开头)向数组添加新元素
delete
运算符来删除
splice()
方法可用于向数组添加新项 splice(2,2,’dd’,’jj’) 在位置为2的地方添加ddjj,删除两个
concat() 方法通过合并(连接)现有数组来创建一个新数组
slice()
方法用数组的某个片段切出新数组。
reverse()
方法反转数组中的元素
随机顺序排序
points.sort(function(a, b){return 0.1 - Math.random()});
查找最高(或最低)的数组值
Math.max.apply 最高的数组值
Math.max.apply 最低的数组值
map() 方法通过对每个数组元素执行函数来创建新数组
filter()
方法创建一个包含通过测试的数组元素的新数组(过滤)
reduce()
方法在每个数组元素上运行函数,从左到右工作,以生成(减少它)单个值
reduceRight()
方法在数组中从右到左工作
every()
方法检查所有数组值是否通过测试返回布尔值
some() 方法检查某些数组值是否通过了测试
indexOf() 方法在数组中搜索元素值并返回其位置
Array.lastIndexOf() 从结尾开始搜索
find()返回通过测试函数的第一个数组元素的值
findIndex() 方法返回通过测试函数的第一个数组元素的索引。
用 const
声明的数组不能重新赋值
用 const
声明的数组具有块作用域
日期
new Date()
用当前日期和时间创建新的日期对象
toUTCString() 方法将日期转换为 UTC 字符串(一种日期显示标准)
获取时间getDate等
设置日期setDate等
数学
Math.round()四舍五入
Math.pow(x,y) 返回x的y次幂
Math.sqrt() 返回平方根
Math.abs()返回绝对值
Math.ceil()向上返回最接近的整数Math.ceil(6.4)返回7
Math.floor()向下返回Math.floor(6.4)返回6
Math.sin()返回角的正弦
Math.cos()返回角的余弦
Math.max(),Math.min()查找参数列表中最大最小值
Math.random()返回0和1之间的随机小数
Math.E // 返回欧拉指数(Euler's number)
Math.PI // 返回圆周率(PI)
Math.SQRT2 // 返回 2 的平方根
Math.SQRT1_2 // 返回 1/2 的平方根
Math.LN2 // 返回 2 的自然对数
Math.LN10 // 返回 10 的自然对数
Math.LOG2E // 返回以 2 为底的 e 的对数(约等于 1.414)
Math.LOG10E // 返回以 10 为底的 e 的对数(约等于 0.434)
逻辑
- 计算一次 switch 表达式
- 把表达式的值与每个 case 的值进行对比
- 如果存在匹配,则执行关联代码
- Switch case 使用严格比较(
===
)
swith(){
case 0:
default:
}
default
关键词规定不存在 case 匹配时所运行的代码
循环
- for - 多次遍历代码块
- for/in - 遍历对象属性
- while - 当指定条件为 true 时循环一段代码块
- do/while - 当指定条件为 true 时循环一段代码块
for in循环:
- for in 循环遍历 person 对象
- 每次迭代返回一个键 (x)
- 键用于访问键的值
- 键的值为 person[x]
for of 语句循环遍历可迭代对象的值
while 循环会一直循环代码块,只要指定的条件为 true
do/while 循环是 while 循环的变体。在检查条件是否为真之前,这种循环会执行一次代码块,然后只要条件为真就会重复循环
如需标记 JavaScript 语句,请将标签名和冒号置于语句之前 aa:{}
constructor
属性返回所有 JavaScript 变量的构造函数
异常
try
语句使您能够测试代码块中的错误。
catch
语句允许您处理错误。
throw
语句允许您创建自定义错误。
finally
使您能够执行代码,在 try 和 catch 之后,无论结果如何。
声明严格模式
通过在脚本或函数的开头添加 "use strict";
来声明严格模式
严格模式中不允许的事项
在不声明变量的情况下使用变量,是不允许的:
删除变量(或对象)是不允许的
删除函数是不允许的
重复参数名是不允许的
八进制数值文本是不允许的:
转义字符是不允许的
写入只读属性是不允许的
写入只能获取的属性是不允许的
删除不可删除的属性是不允许的
字符串 "eval" 不可用作变量
字符串 "arguments" 不可用作变量
with
语句是不允许的
this
call()
和 apply()
方法是预定义的 JavaScript 方法
JSON 语法规则
- 数据是名称/值对
- 数据由逗号分隔
- 花括号保存对象
- 方括号保存数组
如果您的浏览器支持调试,那么您可以使用 console.log()
在调试窗口中显示 JavaScript 的值
debugger 关键词会停止 JavaScript 的执行,并调用(如果有)调试函数。
这与在调试器中设置断点的功能是一样的
JavaScript 对象都可以使用 JavaScript 函数 JSON.stringify()
进行字符串化(转换为字符串)
Getter 和 Setter 允许您定义对象访问器(被计算的属性
JavaScript prototype 属性允许您为对象构造器添加新属性和新方法
set字典
call() 方法是预定义的 JavaScript 方法。它可以用来调用所有者对象作为参数的方法。通过 call(),您能够使用属于另一个对象的方法。
call() 方法分别接受参数。
apply() 方法接受数组形式的参数
JavaScript 变量属于本地或全局作用域。
全局变量能够通过闭包实现局部(私有)
内部函数 plus() 可以访问父函数中的 counter 计数器变量
static 类方法是在类本身上定义的。
您不能在对象上调用 static 方法,只能在对象类上调用
static
方法中使用 myCar 对象,可以将其作为参数发送
回调:
setTimeout(myFunction, 3000) 超过3000毫秒调用myFunction函数
在使用 JavaScript 函数 setInterval()
时,可以指定每个间隔执行的回调函数
clearInterval() 来停止执行
disabled
js添加disabled属性时,document.getElementById("btn").disabled=false,表示不添加disabled属性;
- document.getElementById("btn").disabled=true 为标签添加disabled属性;
- 当标签为<input type="button" id="btn" name="btn" value="按钮" disabled="true/false"/>时,均为不可点击
当布尔属性 disabled 存在时,元素将不可变、不能聚焦或与表单一同提交。用户将不能在表单控件本身或其子控件进行编辑或聚焦操作。
事件:
onsubmit 属性在表单提交时触发
createElement(“form”创建表单)