今天在卸载网易有道云笔记时候,偶然看到之前留存的相关学习笔记,
删除可惜,索性博客备份一下。
数据类型
在 JavaScript 中有 5 种不同的数据类型:
- string
- number
- boolean
- object
- function
3 种对象类型:
- Object
- Date
- Array
2 个不包含任何值的数据类型:
- null
- undefined
var person = null // 值为null ,但类型为对象
var person = undefined // 值为undefined ,类型为undefined
typeof undefined // undefined
typeof null // object
null === undefined // false
// null和undefined的值相等 但是类型不同
null == undefined // true
循环结构
-
for
-
while / do while
-
switch
break / continue {
// 可带标签
break:list
// 跳出list
// break可跳出任何JavaScript代码块
continue
// 只能用于循环内
}
typeof ()
用于检测变量的数据类型的
typeof "John" // 返回 string
typeof 3.14 // 返回 number
typeof false // 返回 boolean
typeof [1,2,3,4] // 返回 object
typeof {name:'John', age:34} // 返回 object
- constructor属性 返回所有JavaScript变量的构造函数
"John".constructor // 返回函数 String() { [native code] }
(3.14).constructor // 返回函数 Number() { [native code] }
false.constructor // 返回函数 Boolean() { [native code] }
[1,2,3,4].constructor // 返回函数 Array() { [native code] }
{name:'John', age:34}.constructor // 返回函数 Object() { [native code] }
new Date().constructor // 返回函数 Date() { [native code] }
function () {}.constructor // 返回函数 Function(){ [native code] }
类型转换
转为字符串
String(x) // 将变量 x 转换为字符串并返回
x.toString()
转为数字
- 全局方法 Number() 可以将字符串转换为数字。
- 字符串包含数字(如 “3.14”) 转换为数字 (如 3.14).
- 空字符串转换为 0。
- 其他的字符串会转换为 NaN (不是个数字)。
Number("3.14") // 返回 3.14
Number(" ") // 返回 0
Number("") // 返回 0
Number("99 88") // 返回 NaN
Number(false) // 返回 0
Number(true) // 返回 1
日期转为数字:
d = new Date();
Number(d) // 返回 1404568027739
d = new Date();
d.getTime() // 返回 1404568027739
自动转换类型
- 当 JavaScript 尝试操作一个 “错误” 的数据类型时,会自动转换为 “正确” 的数据类型
5 + null // 返回 5 null 转换为 0
"5" + null // 返回"5null" null 转换为 "null"
"5" + 1 // 返回 "51" 1 转换为 "1"
"5" - 1 // 返回 4 "5" 转换为 5
自动转换为字符串
- 当你尝试输出一个对象或一个变量时 JavaScript 会自动调用变量的 toString() 方法
document.getElementById("demo").innerHTML = myVar;
myVar = {name:"Fjohn"} // toString 转换为 "[object Object]"
myVar = [1,2,3,4] // toString 转换为 "1,2,3,4"
myVar = new Date() // toString 转换为 "Fri Jul 18 2014 09:08:55 GMT+0200"
正则表达式
什么是正则表达式?
- 正则表达式是由一个字符序列形成的搜索模式。
- 当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容。
- 正则表达式可以是一个简单的字符,或一个更复杂的模式。
- 正则表达式可用于所有文本搜索和文本替换的操作
语法
/正则表达式主体/修饰符(可选)
-
其中修饰符是可选的。
-
var patt = /runoob/i
-
/runoob/i 是一个正则表达式。
-
runoob 是一个正则表达式主体 (用于检索)。
-
i 是一个修饰符 (搜索不区分大小写)。
- i 执行对大小写不敏感的匹配。
- g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
- m 执行多行匹配。
使用字符串方法
search()
var str = "Visit Runoob!"; var n = str.search(/Runoob/i);
\--------------------------------
var str = "Visit Runoob!";
// 可以使用字符串作为参数 自动转换为正则表达式 var n = str.search("Runoob");
// n 返回 6
replace()
var str = document.getElementById("demo").innerHTML; var txt = str.replace(/microsoft/i,"Runoob");
// 使用正则表达式且不区分大小写将字符串中的 Microsoft 替换为 Runoob :
**// return** Visit Runoob!
var str = document.getElementById("demo").innerHTML; var txt = str.replace("Microsoft","Runoob");
// 同上 字符串为参数
正则表达式模式
- 方括号用于查找某个范围内的字符:
表达式
- [abc] 查找方括号之间的任何字符。
- [0-9] 查找任何从 0 至 9 的数字。
- (x|y) 查找任何以 | 分隔的选项。
元字符(元字符是拥有特殊含义的字符:)
- \d 查找数字。
- \s 查找空白字符。
- \b 匹配单词边界。
- \uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符量词
- n+ 匹配任何包含至少一个 n 的字符串。
- n* 匹配任何包含零个或多个 n 的字符串。
- n? 匹配任何包含零个或一个 n 的字符串。
Test()方法
-
test() 方法是一个正则表达式方法。
-
test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。
以下实例用于搜索字符串中的字符 “e”:
var patt = /e/;
patt.test("The best things in life are free!");
// true