赞
踩
目录
1.5、JavaScript 错误 - throw、try 和 catch
学习路径:菜鸟教程,主要就是熟悉一下JavaScript的语法规则,然后我学习的是微信小程序,所以JavaScript很多内容都不需要,例如在html中的使用
值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined)、Symbol(表示独一无二的值)。
引用数据类型(对象类型):对象(Object)、数组(Array)、函数(Function),还有两个特殊的对象:正则(RegExp)和日期(Date)。
注意:对象由花括号分隔。在括号内部,对象属性以名称和值对的形式 (name : value) 来定义。属性由逗号分隔,访问时的两种方法:
- object.name;
- object["name"];
函数声明,关键词 function 必须是小写的(小程序好像可以不需要function)
- function myFunction(var1,var2)
- {
- //执行代码
- }
方法 | 描述 |
---|---|
charAt() | 返回指定索引位置的字符,或者直接使用[index]获取 |
charCodeAt() | 返回指定索引位置字符的 Unicode 值 |
concat() | 连接两个或多个字符串,返回连接后的字符串,多个的时候使用,单个也可以使用push |
fromCharCode() | 将 Unicode 转换为字符串 |
indexOf() | 返回字符串中检索指定字符第一次出现的位置 |
lastIndexOf() | 返回字符串中检索指定字符最后一次出现的位置 |
localeCompare() | 用本地特定的顺序来比较两个字符串 |
match() | 找到一个或多个正则表达式的匹配 |
replace() | 替换与正则表达式匹配的子串 |
search() | 检索与正则表达式相匹配的值 |
slice() | 提取字符串的片断,并在新的字符串中返回被提取的部分 |
split() | 把字符串分割为子字符串数组 |
substr() | 从起始索引号提取字符串中指定数目的字符 |
substring() | 提取字符串中两个指定的索引号之间的字符 |
toLocaleLowerCase() | 根据主机的语言环境把字符串转换为小写,只有几种语言(如土耳其语)具有地方特有的大小写映射 |
toLocaleUpperCase() | 根据主机的语言环境把字符串转换为大写,只有几种语言(如土耳其语)具有地方特有的大小写映射 |
toLowerCase() | 把字符串转换为小写 |
toString() | 返回字符串对象值 |
toUpperCase() | 把字符串转换为大写 |
trim() | 移除字符串首尾空白 |
valueOf() | 返回某个字符串对象的原始值 |
constructor | 对创建该对象的函数的引用 |
length | 字符串的长度 |
prototype | 允许您向对象添加属性和方法 |
注意事项:例如var x = 10 + "5";竟然可以正常运行返回"105",这样在自己调用的时候需要注意其类型,避免出现自己混淆出现程序跑飞的情况
异步的概念:程序的运行是同步的(同步不意味着所有步骤同时运行,而是指步骤在一个控制流序列中按顺序执行)。而异步的概念则是不保证同步的概念,也就是说,一个异步过程的执行将不再与原有的序列有顺序关系。JavaScript 中的异步操作函数往往通过回调函数来实现异步任务的结果处理。
回调函数就是一个函数,它是在我们启动一个异步任务的时候就告诉它:等你完成了这个任务之后要干什么。这样一来主线程几乎不用关心异步任务的状态了,他自己会善始善终。例如:
- //这段程序中的 setTimeout 就是一个消耗时间较长(3 秒)的过程,
- 它的第一个参数是个回调函数,第二个参数是毫秒数,
- 这个函数执行之后会产生一个子线程,子线程会等待 3 秒
- setTimeout(function () {
- document.getElementById("demo").innerHTML="RUNOOB!";
- }, 3000);
- new Promise(function (resolve, reject) {
- // 要做的事情...
- });
Promise 构造函数只有一个参数,是一个函数,这个函数在构造之后会直接被异步运行,所以我们称之为起始函数。起始函数包含两个参数 resolve 和 reject,但是请注意以下两点:
异步函数 async function 中可以使用 await 指令,await 指令后必须跟着一个 Promise,异步函数会在这个 Promise 运行中暂停,直到其运行结束再继续运行。
异步函数实际上原理与 Promise 原生 API 的机制是一模一样的,只不过更便于程序员阅读。
处理异常的机制将用 try-catch 块实现:
- async function asyncFunc() {
- try {
- await new Promise(function (resolve, reject) {
- throw "Some error"; // 或者 reject("Some error")
- });
- } catch (err) {
- console.log(err);
- // 会输出 Some error
- }
- }
- asyncFunc();
箭头函数
- //定义
- (参数1, 参数2, …, 参数N) => { 函数声明 }
-
- (参数1, 参数2, …, 参数N) => 表达式(单一)
- // 相当于:(参数1, 参数2, …, 参数N) =>{ return 表达式; }
- //实例
- // ES5
- var x = function(x, y) {
- return x * y;
- }
-
- // ES6
- const x = (x, y) => x * y;
例如函数参数检测:
- // 如果 y 已经定义,y || 0 返回 y,因为 y 是 true,
- 否则返回 0,因为 undefined 为 false。
- function myFunction(x, y) {
- y = y || 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。