JavaScript 函数是一种 JavaScript 代码块,它能够在调用时被执行。java
<script> function fun() { document.getElementById("demo").innerHTML = "js"; } foo(); </script>
<script src="/js/myScript1.js"></script>
数组
使用 window.alert()
写入警告框浏览器
使用 document.write()
写入 HTML 输出
提示:document.write() 方法仅用于测试。在 HTML 文档彻底加载后使用 document.write() 将删除全部已有的 HTMLdom
innerHTML
写入 HTML 元素。也就是从对象的起始位置到终止位置的所有内容,包括Html标签
innerText
: 从起始位置到终止位置的内容, 但它去除Html标签
ide
使用 console.log()
写入浏览器控制台函数
<script> document.getElementById("demo").innerText="AAA"; document.getElementById("demo").innerHTML="<font color=#ff0000>AAA</font>"; </script>
Infinity(或 -Infinity)是 JavaScript 在计算数时超出最大可能数范围时返回的值:`typeOf Infinity` 返回 `number` NaN 属于 JavaScript 保留词,指示某个数不是合法数: var x = NaN; var y = 5; var z = x + y; // z 将是 NaN typeof NaN; // 返回 "number" Undefined 与 null 的值相等,但类型不相等: var x; //值是 undefined,undefined类型 任何变量都可经过设置值为 undefined 进行清空。其类型也将是 undefined。 var person = null; // 值是 null,可是类型仍然是对象 typeof null // 返回 "object" typeof function myFunc(){} // 返回 "function" var x = true; //布尔值 var car = ""; // 值是 "",类型是 "string" var length = 7; // 数字 var lastName = "Gates"; // 字符串 当数值和字符串相加时,JavaScript 将把数值视做字符串。 var cars = ["Porsche", "Volvo", "BMW"]; // 数组 var x = {firstName:"Bill", lastName:"Gates"}; // 对象
<button onclick='document.getElementById("demo").innerHTML=Date()'>如今的时间是?</button>
注:JavaScript 代码一般有不少行。事件属性调用函数更为常见:<button onclick="displayDate()">如今的时间是?</button>
测试
反斜杠转义字符把特殊字符转换为字符串字符:ui
\' ' 单引号 \" " 双引号 \\ \ 反斜杠
1. indexOf() 方法返回字符串中指定文本首次出现的首字母索引(位置): var pos = str.indexOf("China"); 2. lastIndexOf() 方法返回指定文本在字符串中最后一次出现的首字母索引: var pos = str.lastIndexOf("China"); 注:若是未找到文本, indexOf() 和 lastIndexOf() 均返回 -1。 3. search() 方法搜索特定值的字符串,并返回匹配的首字母位置: var pos = str.search("locate"); 4. 提取部分字符串(不包括尾索引) 裁剪字符串中位置 7 到位置 13 的片断: var res = str.slice(7,13); //若是某个参数为负,则从字符串的结尾开始计数。 若是省略第二个参数,则该方法将裁剪字符串的剩余部分:var res = str.slice(7); substring() 相似于 slice(),第二个参数规定被提取部分的长度: var res = str.substr(7,6); //若是省略第二个参数,则该 substr() 将裁剪字符串的剩余部分。 5. 替换字符串内容: var n = str.replace("Microsoft", "W3School"); //默认地,replace() 只替换首个匹配 6. 转换为大写和小写: var text2 = text1.toUpperCase(); // text2 是被转换为大写的 text1 7. trim() 方法删除字符串两端的空白符: var str = " Hello World! ";str=str.trim(); 8. 提取字符串字符: var str = "HELLO WORLD";str.charAt(0); // 返回 H 9. 方法返回字符串中指定索引的字符 unicode 编码: var str = "HELLO WORLD";str.charCodeAt(0); // 返回 72 10. 把字符串转换为数组: var txt = "a,b,c,d,e"; // 字符串 txt.split(","); // 用逗号分隔 txt.split(" "); // 用空格分隔 txt.split(""); // 分隔为字符 11. 在全部数字运算中,JavaScript 会尝试将字符串转换为数字: var x = "100"; var y = "10"; var z = x / y; // z 将是 10 12. toString() 返回字符串: var x = 123; x.toString(); // 从变量 x 返回 123
在 JavaScript 内部使用 valueOf() 方法可将 Number 对象转换为原始值:var x = 123; x.valueOf(); // 从变量 x 返回 123
Number() 可用于把 JavaScript 变量转换为数值:编码
x = true; Number(x); // 返回 1 x = false; Number(x); // 返回 0 x = new Date(); Number(x); // 返回 1404568027739 x = "10" Number(x); // 返回 10 x = "10 20" Number(x); // 返回 NaN
parseInt() 解析一段字符串并返回数值。容许空格。只返回首个数字:code
parseInt("10"); // 返回 10 parseInt("10.33"); // 返回 10 parseInt("10 20 30"); // 返回 10 parseInt("10 years"); // 返回 10 parseInt("years 10"); // 返回 NaN
数组是对象,数组元素能够是对象:myArray[0] = Date.now;
1. var x = arr.length; // length 属性返回元素的数量 2. var y = arr.sort(); // sort() 方法对数组进行排序(字母顺序) 3. 遍历数组元素:"for" 循环或者 Array.foreach() 函数: arr.forEach(myFunction); function myFunction(value) { text += "<li>" + value + "</li>"; } 4. 添加数组元素:arr.push("Lemon"); 5. 把数组转换为字符串:toString() 6. join() 方法也可将全部数组元素结合为一个字符串: arr.join(" * "); //Banana * Orange * Apple * Mango 7. pop() 方法从数组中删除最后一个元素,pop() 方法返回“被弹出”的值 push() 方法(在数组结尾处)向数组添加一个新的元素,方法返回新数组的长度 8. shift() 方法返回被“位移出”的字符串(在开头): var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.shift(); // 返回 "Banana" unshift() 方法(在开头)向数组添加新元素,并“反向位移”旧元素,返回新数组的长度: var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.unshift("Lemon"); // 向 fruits 添加新元素 "Lemon" 9. splice() 方法可用于向数组添加新项: arr.splice(2, 0, "Lemon", "Kiwi"); arr.splice(0, 1); // 删除 fruits 中的第一个元素 第一个参数(2)定义了应添加新元素的位置(拼接)。 第二个参数(0)定义应删除多少元素。 其他参数(“Lemon”,“Kiwi”)定义要添加的新元素。 splice() 方法返回一个包含已删除项的数组 10. 合并(链接)数组: var myGirls = ["Cecilie", "Lone"]; var myBoys = ["Emil", "Tobias", "Linus"]; var myChildren = myGirls.concat(myBoys); // 链接 myGirls 和 myBoys concat() 方法不会更改现有数组。它老是返回一个新数组。 concat() 方法可使用任意数量的数组参数。 11. 裁剪数组:slice() 方法建立新数组。它不会从源数组中删除任何元素。 var arr1 = arr.slice(1); //截取索引1及之后的元素建立新数组 var arr1= arr.slice(1, 3); //当给slice()方法赋予两个参数时,它从start参数中选择数组元素,直到(但不包括)end参数 12. sort() 方法以字母顺序对数组进行排序 反转数组:reverse() 方法反转数组中的元素。 数字排序:sort默认以字符串方式排序 修正: var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return a - b}); 13. Array.map() map() 方法经过对每一个数组元素执行函数来建立新数组,map() 方法不会更改原始数组: var numbers1 = [45, 4, 9, 16, 25]; var numbers2 = numbers1.map(myFunction); function myFunction(value, index, array) { return value * 2; } 14. Array.filter()方法建立一个包含经过测试的数组元素的新数组: var numbers = [45, 4, 9, 16, 25]; var over18 = numbers.filter(myFunction); function myFunction(value) { return value > 18; } 15. Array.indexOf()方法在数组中搜索元素值并返回其位置:var a = arr.indexOf("Apple"); 以及Array.lastIndexOf() 16. 肯定数组中全部数的总和: var numbers1 = [45, 4, 9, 16, 25]; var sum = numbers1.reduce(myFunction); function myFunction(total, value) { return total + value; }
for ... in
循环遍历的其实是对象的属性名称
。一个Array数组实际上也是一个对象,它的每一个元素的索引被视为一个属性
。
当咱们手动给Array对象添加了额外的属性后,for ... in循环将带来意想不到的意外效果:
var a = ['A', 'B', 'C']; a.name = 'Hello'; for (var x in a) { console.log(x); // '0', '1', '2', 'name' }
for ... in循环将把name包括在内,但Array的length属性却不包括在内。
for ... of循环则彻底修复了这些问题,它只循环集合自己的元素
:
var a = ['A', 'B', 'C']; a.name = 'Hello'; for (var x of a) { console.log(x); // 'A', 'B', 'C' }
forEach
遍历集合
a.forEach(function (element, index, array) { // element: 指向当前元素的值 // index: 指向当前索引 // array: 指向Array对象自己 console.log(element + ', index = ' + index); });
建立日期对象
var d = new Date();
document.getElementById("demo").innerHTML = d;
toUTCString()
toLocaleString()
// 2015/6/24 下午7:49:22获取日期方法
document.getElementById("demo").innerHTML = d.getTime();
Math.round(x)
的返回值是 x 四舍五入为最接近的整数Math.abs(x)
返回 x 的绝对(正)值Math.ceil(x)
的返回值是 x 上舍入最接近的整数Math.floor(x)
的返回值是 x 下舍入最接近的整数Math.min()
和 Math.max()
可用于查找参数列表中的最低或最高值Math.random()
返回介于 0(包括) 与 1(不包括) 之间的随机数Math.floor(Math.random() * 10);
返回 0 至 9 之间的数块做用域(Block Scope)变量(和常量):let 和 const。
1. var x = 10; // 此处 x 为 10 { var x = 6; // 此处 x 为 6 } // 此处 x 为 6 2. var i = 7; for (var i = 0; i < 10; i++) { // 一些语句 } // 此处,i 为 10 3. let i = 7; for (let i = 0; i < 10; i++) { // 一些语句 } // 此处 i 为 7 4. 在相同的做用域,或在相同的块中,经过 let 从新声明一个 var 变量是不容许的: var x = 10; // 容许 let x = 6; // 不容许 5. let x = 6; // 容许 { let x = 7; // 容许 } { let x = 8; // 容许 } 6. 您没法从新为常量数组赋值: const cars = ["Audi", "BMW", "porsche"]; cars = ["Honda", "Toyota", "Volvo"]; // ERROR