多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] # 每日英语 1. `snippet` 代码段(vscode会用到, 加快编程速度) 2. `prefix` 前缀 3. `description` 描述 4. `result` 结果(可以缩写成res) 5. `plus` 加法 6. `minus` 减法 7. `multiply` 乘法 8. `divide` 除法 9. `square root` 开方(sqrt) 10. `math` 数学 11. `method` 方法 12. `param` 参数 13. `length` 长度(用来获取数组长度) 14. `concat` 合并(数组) 15. `separator` 分隔符 16. `shift` 移位(删除) 17. `slice` 切片 18. `sort` 排序 19. `splice`拼接 # 函数 ## 什么是函数? > 函数就是执行指定功能的代码段 ```javascript function helloWorld(){ console.log('hello world !!!'); } helloWorld(); // 输出helloWorld ``` ## 函数的命名规范 > 动词+名词 > 命名规范和变量一致 1. 区分大小写 2. 不能数字开头 3. 不能保留字 4. 不能空格 ## 如何定义一个函数 ```javascript function 函数名(参数){ 代码段 } ``` ```javascript // plusNumber() = a+b function plusNumber(){ var a = 1; var b = 2; return a+b; } ``` ## 函数的运行, 需要调用 ```javascript // 单纯定义是没有结果的 function helloWorld(){ console.log('hello world !!!'); } ``` ## 什么是函数的参数 > 函数中用到的变量 > 可以让函数变得更加灵活 ```javascript function printSomething(sth){ console.log(sth) } printSomething('hello world'); // hello world printSomething('hello USA'); // hello USA ``` ## 什么是函数的返回值? > 反馈运行的结果 ## 没有返回值的情况 ```javascript function plusNumber(){ var a = 1; var b = 2; console.log(a+b); } plusNumber(); // 3 ``` ## 没有返回值会返回undefined ```javascript function plusNumber(){ var a = 1; var b = 2; // console.log(a+b); a+b; } plusNumber(); // 3 console.log(plusNumber()); // undefined ``` ## 函数和返回值的关系, 相当于变量和变量值的关系 ```javascript // plusNumber() = a+b function plusNumber(){ var a = 1; var b = 2; return a+b; } console.log(plusNumber()); // 3 ``` ## 返回值需要被变量接收 ```javascript function plusNumber(){ var a = 1; var b = 2; return a+b; } plusNumber(); // 没有结果 ``` ```javascript function plusNumber(){ var a = 1; var b = 2; return a+b; } var result = plusNumber() console.log(plusNumber()) // 3 ``` ## 如何调用函数? > 直接用函数名 ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <script> function helloWorld(){ alert('hello world') // 执行特定功能 } </script> </head> <body> <input type="button" value="click" onclick="helloWorld()"> </body> </html> ``` 函数的第二种写法 ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <script> var helloWorld = function(){ alert('hello world!!!!') // 执行特定功能 } </script> </head> <body> <input type="button" value="click" onclick="helloWorld()"> </body> </html> ``` ## 函数传参 ```javascript // plusNumber() = a+b function plusNumber(a,b){ return a+b; } var res = plusNumber(3,4); console.log(res); // 7 ``` 传参, 就是传变量 ```javascript // plusNumber() = a+b function plusNumber(a,b){ return a+b; } var first = 33; var second = 4; var res = plusNumber(first,second); console.log(res); // 37 ``` ## 使用vscode查看函数解释(把鼠标移到函数名称上, 即可显示) ![](https://box.kancloud.cn/6b05e3639b3262f68753f07bca824597_834x251.png) ## 默认参数(如果不传值, 参数也可以保证函数运算时, 有值可用, 可以提交代码的健壮性) ```javascript function plusNum(a=1,b=2){ return a+b; } console.log(plusNum()) // 3 ``` # 数组属性 什么是数组? > 数据类型之一, 表示一组数据 > array ==> 数组 如何声明数组 ```javascript var arr = new Array(); var arr = []; ``` 如何增加元素 ```javascript var arr = []; arr[0] = 1; arr[1] = 2; ``` 如何获取元素 ```javascript var arr = [1,2,3,4]; arr[2]; // 3 arr[2] = 5; // 数组会变成[1,2,5,4] ``` 如何获取数组长度 ```javascript var arr = [1,2,3,4]; console.log(arr.length); // 4 ``` ```javascript var arr = [1,2,3,4]; console.log(arr.length); arr[4] = 100; console.log(arr.length); // 5 arr[6] = 100; console.log(arr.length); // 7 ``` `length` 是一个对象的属性,所谓属性, 我们现在叫做变量 ```javascript var arr = [1,2,3,4]; console.log(arr.length); arr[4] = 100; console.log(arr.length); // 5 arr[6] = 100; console.log(arr.length); // 7 ``` ## 方法和函数的区别 没有区别, 叫法不同, 面向对象叫方法, 我们现在叫函数 ## 对象复习(有索引, 就可以查出来值) ```javascript var obj = { "name":"China", "sex":"female" } console.log(obj.name); // China obj.name = "USA"; console.log(obj.name); // USA ``` 索引也可以不加引号 ```javascript var obj = { name:"China", sex:"female" } console.log(obj.name); // China obj.name = "USA"; console.log(obj.name); // USA ``` 数组的"正规"取值方式 ```javascript var arr = [1,2,3,4]; console.log(arr['length']); // 4 arr[4] = 100; console.log(arr['length']); // 5 arr[6] = 100; console.log(arr['length']); // 7 ``` 对象的取值方式 ```javascript var arr = [1,2,3,4]; console.log(arr.length); // 4 arr[4] = 100; console.log(arr.length); // 5 arr[6] = 100; console.log(arr.length); // 7 ``` # 数组方法 ## concat() `合并` > 连接两个或更多的数组,并返回结果。 > `arrayObject.concat(arrayX,arrayX,......,arrayX)` ## 注意使用方式 ```javascript var arr1 = ["I","love","China"]; var arr2 = ["!","!","!"]; console.log(concat(arr1,arr2)); // concat is not defined 没有定义, 因为是对象方法, 不是自定义函数 ``` ```javascript var arr1 = ["I","love","China"]; var arr2 = ["!","!","!"]; console.log(arr1.concat(arr2)); // 把arr1和arr2 合并了, arr1的内容在前, arr2的内容在后 console.log(arr2.concat(arr1)); // 把arr1和arr2 合并了, arr2的内容在前, arr1的内容在后 ``` ```javascript var arr1 = ["I","love","China"]; var arr2 = ["!","!","!"]; var res = arr1.concat(arr2); // 声明一个变量接收方法的返回值 console.log(res); // 输出变量 ``` # join() `转换` > 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。 `arrayObject.join(separator)` ## 什么是separator? 分隔符 > 能起到分割作用的符号, 都可以作为分隔符, 可以起到美观的效果, 易于识别 ```javascript /* 分隔符的使用, 本质上, 数组转字符串 */ var arr1 = ["I","love","China"]; var arr2 = ["!","!","!"]; var res = arr1.join(","); var res2 = arr1.join("-"); var res3 = arr1.join(""); var res4 = arr1.join(" "); console.log(res); // I,love,China console.log(res2); // I-love-China console.log(res3); // IloveChina console.log(res4); // I love China ``` # pop() `删除` > 删除并返回数组的最后一个元素 > `arrayObject.pop()` ```javascript /* 分隔符的使用, 本质上, 数组转字符串 */ var arr1 = ["I", "love", "China", "!", "!", "!"]; var res = arr1.pop(); console.log(res); // ! res = arr1.pop(); console.log(res); // ! res = arr1.pop(); console.log(res); // ! res = arr1.pop(); console.log(res); // China res = arr1.pop(); console.log(res); // love res = arr1.pop(); console.log(res); // I res = arr1.pop(); console.log(res); // undefined ``` ```javascript // 删除之后, 数组会改变 var arr = ["I","Love","China","!","!","!"]; console.log(arr.pop()); // ! console.log(arr.pop()); // ! console.log(arr); // [ 'I', 'Love', 'China', '!' ] ``` ## push() `添加` > 向数组的末尾添加一个或更多元素,并返回新的长度。 `arrayObject.push(newelement1,newelement2,....,newelementX)` ```javascript /* push 结尾追加元素, 返回长度 */ var arr1 = ["I", "love", "China"]; var res = arr1.push("!"); console.log(res); // 4 res = arr1.push("!"); console.log(res); // 5 console.log(arr1); // [ 'I', 'love', 'China', '!', '!' ] ``` ## 注意eval() > 有朝一日, 做了php, 记得禁掉eval函数 ```javascript var a = "console.log('123')"; // 123 eval(a); // 字符串转代码 ``` ## reverse() `排序` > 颠倒数组中元素的顺序。 > arrayObject.reverse() ```javascript var arr = ["I","Love","China","!","!","!"]; var res = arr.reverse(); console.log(res); // [ '!', '!', '!', 'China', 'Love', 'I' ] 顺序颠倒 ``` ## shift() `删除` > 删除并返回数组的第一个元素 > arrayObject.shift() ```javascript var arr = [1,2,3,4,5,6,7,8]; console.log(arr.shift()); // 1 console.log(arr); console.log(arr.shift()); // 2 console.log(arr); console.log(arr.shift()); // 3 console.log(arr); console.log(arr.shift()); // 4 console.log(arr); console.log(arr.shift()); // 5 console.log(arr); console.log(arr.shift()); // 6 console.log(arr); console.log(arr.shift()); // 7 console.log(arr); console.log(arr.shift()); // 8 console.log(arr); console.log(arr.shift()); // undefined console.log(arr); console.log(arr.shift()); // undefined console.log(arr); ``` ## unshift() `添加` > 向数组的开头添加一个或更多元素,并返回新的长度。 > arrayObject.unshift(newelement1,newelement2,....,newelementX) ```javascript var arr = []; console.log(arr.unshift(1)); // 1 console.log(arr); // [ 1 ] console.log(arr.unshift(1,2,3,4)); // 5 console.log(arr); // [ 1, 2, 3, 4, 1 ] ``` ## slice() `查询` > 从某个已有的数组返回选定的元素 > arrayObject.slice(start,end) ```javascript var arr = ["I","love","China","!"]; console.log(arr.slice(0,2)); // [ 'I', 'love' ] ``` 负数是倒数的意思 ```javascript var arr = ["I","love","China","!"]; console.log(arr.slice(0,-1)); // [ 'I', 'love', 'China' ] ``` 切片不影响原数组, 因为本质是查询 ```javascript var arr = ["I","love","China","!"]; console.log(arr.slice(0,-1)); // [ 'I', 'love', 'China' ] console.log(arr); // [ 'I', 'love', 'China', '!' ] ``` ```javascript var arr = ["I","love","China","!"]; // 如果没有end, 默认到结束 console.log(arr.slice(1)); // [ 'love', 'China', '!' ] console.log(arr); // [ 'I', 'love', 'China', '!' ] ``` ## sort() `排序` > 对数组的元素进行排序, 注意`支持自定义函数` > arrayObject.sort(sortby) ```javascript var arr = [3,2,5,9,11,8]; // 当成字符串来排序了 // var arr = ['3','2','5','9','11','8']; console.log(arr.sort()); // [ 11, 2, 3, 5, 8, 9 ] ``` ```javascript function sortNumber(a, b) { return a - b; } var arr = [3, 2, 5, 9, 11, 8]; console.log(arr.sort(sortNumber)); // [ 2, 3, 5, 8, 9, 11 ]; ``` ## splice() `修改` > 删除元素,并向数组添加新元素。 > arrayObject.splice(index,howmany,item1,.....,itemX) ```javascript var arr = ["I","love","China","!"]; var res = arr.splice(0,3); console.log(res); // [ 'I', 'love', 'China' ] console.log(arr); // [ '!' ] ``` ```javascript var arr = ["I","love","China","!"]; var res = arr.splice(0,3,"hello","world"); console.log(res); // 删掉的返回回来 console.log(arr); // [ 'hello', 'world', '!' ], 删了前三个, 替换了两个 ```