JS 能做什么???
- JavaScript 能够改变 HTML 内容
document.getElementById("demo").innerHTML = "Hello JavaScript";
- JavaScript 能够改变 HTML 属性
- JavaScript 能够改变 HTML 样式 (CSS)
document.getElementById("demo").style.fontSize = "25px";
- JavaScript 能够隐藏 HTML 元素
document.getElementById("demo").style.display="none";
- JavaScript 能够显示 HTML 元素
document.getElementById("demo").style.display="block";
JS输出
JavaScript 不提供任何内建的打印或显示函数
JavaScript 能够以不同方式“显示”数据:
- 使用
window.alert()
写入警告框 - 使用
document.write()
写入 HTML 输出 - 使用
innerHTML
写入 HTML 元素 - 使用
console.log()
写入浏览器控制台
常见的 HTML 事件
事件 | 描述 |
---|---|
onchange | HTML元素已被改变 |
onclick | 用户点击了HTML元素 |
onmouseover | 用户吧鼠标移动到HTML元素上 |
onmouseout | 用户把鼠标从HTML元素上移开 |
onkeydown | 用户按下键盘按键 |
onload | 浏览器已经完成页面加载时 |
this 关键字
实例:
var person = {
firstName: "Bill",
lastName : "Gates",
id : 678,
fullName : function() {
return this.firstName + " " + this.lastName;
}
};
在函数定义中,this
引用该函数的“拥有者”。
在上面的例子中,this
指的是“拥有” fullName 函数的 person 对象。
换言之,this.firstName
的意思是** this 对象**的 firstName 属性。
有时候你会看到别人的代码里有这么一行↓
var self = this;
这样是为了将this
的指向引到本对象之外,以便引用除本对象之外的属性
或方法
(或是避免多个this
之间的冲突)。
JS 字符串方法
- 字符串长度 :
length
属性返回字符串的长度 - 查找字符串中的字符串 :
indexOf()
方法返回字符串中指定文本首次出现的索引(位置)
注:JavaScript 从0
开始计算位置;
lastIndexOf()
方法返回指定文本在字符串中最后一次出现的索引;
如果未找到,均返回-1
. - 检索字符串中的字符串 :
search()
方法搜索特定值的字符串,并返回匹配的位置
注:indexOf()
与search()
,的区别在于:
search()
方法无法设置第二个开始位置参数。
indexOf()
方法无法设置更强大的搜索值(正则表达式)。 - 提取部分字符串
有三种提取部分字符串的方法:
slice(start, end)
:提取字符串的某个部分并在新字符串中返回被提取的部分,该方法设置两个参数:起始索引(开始位置),终止索引(结束位置),参数可以为负数
:如果某个参数为负,则从字符串的结尾开始计数。
substring(start, end)
:
substr(start, length)
: - 替换字符串内容
replace()
方法用另一个值替换在字符串中指定的值 - concat() 方法
concat()
连接两个或多个字符串 - String.trim()
trim()
方法删除字符串两端的空白符 - 提取字符串字符
这是两个提取字符串字符的安全方法:
charAt(position)
:方法返回字符串中指定下标(位置)的字符串
charCodeAt(position)
: 方法返回字符串中指定索引的字符 unicode 编码 - 把字符串转换为数组
可以通过split()
将字符串转换为数组
JavaScript 数值始终是 64 位的浮点数
NaN - 非数值
-
NaN
属于 JavaScript 保留词,指示某个数不是合法数; -
NaN
是数,typeof NaN
返回number
全局方法
JavaScript 全局方法可用于所有 JavaScript 数据类型
。
方法 | 描述 |
---|---|
NUmber() | 返回数字,有其传递的参数转换而来 |
parseFloat() | 解析其参数并返回浮点数 |
parseInt() | 解析其参数并返回整数 |
数值属性
属性 | 描述 |
---|---|
MAX_VALUE | 返回 JavaScript 中可能的最大数 |
MIN_VALUE | 返回 JavaScript 中可能的最小数 |
NEGATIVE_INFINITY | 表示负的无穷大(溢出返回) |
NaN | 表示非数字值("Not-a-Number") |
POSITIVE_INFINITY | 表示无穷大(溢出返回 |
JS数组
- 创建数组
语法:
var array-name = [item1, item2, ...];
- 添加数组元素
向数组添加新元素的最佳方法是使用push()
方法;
也可以使用 length 属性向数组添加新元素,person[person.length] = "tom"
- 避免使用
new Array()
var points = new Array(); // 差
var points = []; // 优
JS Date日期
创建 Date 对象
Date 对象由新的 Date() 构造函数创建。
有 4 种方法创建新的日期对象:
new Date()
new Date(year, month, day, hours, minutes, seconds, milliseconds)
new Date(milliseconds)
new Date(date string)
toDateString()
方法将日期转换为更易读的格式
零时间是 1970 年 1 月 1 日 00:00:00 UTC
日期获取方法
方法 | 描述 |
---|---|
getDate() | 以数值返回天(1-31) |
getDay() | 以数值获取周名(0-6)(Sunday=0, Monday=1, Tuesday=2 ..) |
getFullYear() | 获取四位的年(yyyy) |
getHours() | 获取小时(0-23) |
getMilliseconds() | 获取毫秒(0-999) |
getMinutes() | 获取分(0-59) |
getMonth() | 获取月(0-11) |
getSeconds() | 获取秒(0-59) |
getTime() | 获取时间(从1970年1月1日至今) |
JS Math对象
方法 | 描述 |
---|---|
Math.PI | 返回 π:3.141592653589793 |
Math.round(x) | 返回 x 四舍五入为最接近的整数 |
Math.pow(x, y) | 返回 x 的 y 次幂 |
Math.sqrt(x) | 返回 x 的平方根 |
Math.abs(x) | 返回 x 的绝对(正)值 |
Math.ceil(x) | 返回 x 上舍入最接近的整数(向上取整) |
Math.floor(x) | 向下取整 |
Math.min() 和 Math.max() | 最低或最高值 |
Math.random() | 返回介于 0(包括) 与 1(不包括) 之间的随机数 |
Tips: Math.random() 常见用法请点击这里
JS错误
JavaScript try 和 catch
try
语句允许您定义一个代码块,以便在执行时检测错误。
catch
语句允许你定义一个要执行的代码块,如果 try 代码块中发生错误。
JavaScript 语句 try
和 catch
成对出现:
try {
供测试的代码块
}
catch(err) {
处理错误的代码块
}
当发生错误时,JavaScript 通常会停止并产生错误消息。JavaScript 实际上会创建带有两个属性的 Error 对象:name
和 message
。
Error 对象属性
属性 | 描述 |
---|---|
name | 设置或返回错误名 |
message | 设置或返回错误消息(一条字符串) |
error 的 name 属性可返回六个不同的值:
错误名 | 描述 |
---|---|
EvalError | 已在 eval() 函数中发生的错误(避免使用) |
RangeError | 已发生超出数字范围的错误 |
ReferenceError | 已发生非法引用 |
SyntaxError | 已发生语法错误 |
TypeError | 已发生类型错误 |
URIError | 在 encodeURI() 中已发生的错误 |
JS this 关键字
this 是什么?
JavaScriptthis
关键词指的是它所属的对象。
它拥有不同的值,具体取决于它的使用位置:
- 在方法中,
this
指的是所有者对象。 - 单独的情况下,
this
指的是全局对象[object Window]
。 - 在函数中,
this
指的是全局对象。 - 在函数中,严格模式下,
this
是 undefined。 - 在事件中,
this
指的是接收事件的元素。
像call()
和apply()
这样的方法可以将 this 引用到任何对象。
请勿使用new Object()
- 请使用
{}
来代替new Object()
- 请使用
""
来代替new String()
- 请使用
0
来代替new Number()
- 请使用
false
来代替new Boolean()
- 请使用
[]
来代替new Array()
- 请使用
/()/
来代替new RegExp()
- 请使用
function (){}
来代替new Function()
实例:
var x1 = {}; // 新对象
var x2 = ""; // 新的原始字符串值
var x3 = 0; // 新的原始数值
var x4 = false; // 新的原始布尔值
var x5 = []; // 新的数组对象
var x6 = /()/; // 新的正则表达式
var x7 = function(){}; // 新的函数对象
Tips:不通过
关键词 var
创建的变量总是全局的
,即使它们在函数中创建。
DOM监听事件
element.addEventListener(event, function, useCapture);
- 第一个参数是事件的类型(比如 "click" 或 "mousedown")。
- 第二个参数是当事件发生时我们需要调用的函数。
- 第三个参数是布尔值,指定使用事件冒泡还是事件捕获。(此参数是可选的。)默认值是 false,将使用冒泡传播,如果该值设置为 true,则事件使用捕获传播
注意:请勿对事件使用 "on" 前缀;请使用 "click" 代替 "onclick"。
能够通过使用removeEventListener()
方法轻松地删除事件监听器
JS 定时事件(Timing)
- 通过 JavaScript 使用的有两个关键的方法:
setTimeout(function, milliseconds)
在等待指定的毫秒数后执行函数。 -
setInterval(function, milliseconds)
等同于setTimeout()
,但持续重复执行该函数。
Tips:一秒有 1000 毫秒。
Ajax 的核心是 XMLHttpRequest 对象
创建 XMLHttpRequest 对象
创建 XMLHttpRequest 的语法是:
variable = new XMLHttpRequest();
老版本的 Internet Explorer(IE5 和 IE6)使用 ActiveX 对象:
variable = new ActiveXObject("Microsoft.XMLHTTP");
为了应对所有浏览器,包括 IE5 和 IE6,请检查浏览器是否支持 XMLHttpRequest 对象。如果支持,创建 XMLHttpRequest 对象,如果不支持,则创建 ActiveX 对象:
var xhttp;
if (window.XMLHttpRequest) {
// 用于现代浏览器的代码
xhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5 应对老版本 IE 浏览器的代码
xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
XMLHttpRequest 对象方法
方法 | ,描述 |
---|---|
new XMLHttpRequest() | 创建新的 XMLHttpRequest 对象 |
abort() | 取消当前请求 |
getAllResponseHeaders() | 返回头部信息 |
getResponseHeader() | 返回特定的头部信息 |
open(method, url, async, user, psw) | 规定请求 method:请求类型 GET 或 POSTurl:文件位置async:true(异步)或 false(同步)user:可选的用户名称psw:可选的密码 |
send() | 将请求发送到服务器,用于 GET 请求 |
send(string) | 将请求发送到服务器,用于 POST 请求 |
setRequestHeader() | 向要发送的报头添加标签/值对 |
XMLHttpRequest 对象属性
属性 | 描述 |
---|---|
onreadystatechange | 定义当 readyState 属性发生变化时被调用的函数 |
readyState | 保存 XMLHttpRequest 的状态——0:请求未初始化;1:服务器连接已建立;2:请求已收到;3:正在处理请求;4:请求已完成且响应已就绪 |
responseText | 以字符串返回响应数据 |
responseXML | 以 XML 数据返回响应数据 |
status | 返回请求的状态号——200: "OK";403: "Forbidden";404: "Not Found" |
statusText | 返回状态文本(比如 "OK" 或 "Not Found") |