2019-07-18 JS小结1

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 语句 trycatch 成对出现:

try {
     供测试的代码块
}
 catch(err) {
     处理错误的代码块
} 

当发生错误时,JavaScript 通常会停止并产生错误消息。JavaScript 实际上会创建带有两个属性的 Error 对象namemessage

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")
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,186评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,858评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,620评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,888评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,009评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,149评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,204评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,956评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,385评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,698评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,863评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,544评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,185评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,899评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,141评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,684评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,750评论 2 351

推荐阅读更多精彩内容