js 教程 http://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000

随着HTML5在PC和移动端越来越流行,JavaScript变得更加重要了。并且,新兴的Node.js把JavaScript引入到了服务器端,JavaScript已经变成了全能型选手。

但这是完全错误的理解。JavaScript确实很容易上手,但其精髓却不为大多数开发人员所熟知。编写高质量的JavaScript代码更是难上加难。

MDN JS权威文档(cn):

声明变量+赋值: var myName = 219;

基本运算: b=a;

字符串长度: 变量名.length

  • name[0] name 变量的 第一个字母.
  • name[2] name变量的 第三个字母
  • name[name.length -1] name 变量的 最后一个字母

字符串 连接: result = “My “ +myAdjective+ “ “ +myNoun+ “ “ +myVerb+ “very” +myAdverb+ “.”; my dog ran very quickly.

数组 var myArray = ["xj", 219];

多重数组: var myArray = [ ["xj", 219], ["qw",107] ];

myArray[0] → xj

修改数组: var ourArray = [1,2,3]; ourArray[1] = 3; // ourArray now equals [1,3,3].

多数组 取值. var myArray = [[1,2,3], [4,5,6], [7,8,9], [[10,11,12], 13, 14]]; var myData = myArray[2][1];

数组 附加值: var ourArray = ["Stimpson", "J", "cat"]; ourArray.push(["happy", "joy"]); 

去掉最后面的值???  var ourArray = [1,2,3]; var removedFromOurArray = ourArray.pop();  → 12

从数组中 分离 第一个值. var ourArray = ["Stimpson", "J", ["cat"]]; removedFromOurArray = ourArray.shift(); // removedFromOurArray now equals "Stimpson" and ourArray now equals ["J", ["cat"]].

arrayname.shift: 去除 左边的第一个值. arrayname.unshift: 左边开始添加值

函数输出 console.log();

return : 返回函数里面的值 到函数的结果.

给数组尾部添加一个值. 然后删除数组前面的第一个值. 函数 显示 被删除的值:

function nextInLine(arr, item) {    arr.push(item);   return arr.shift();;  }

if 语句:

if () {“ it is true”;} return {“it is false”;}

if 结果真 →
结果false 的话 是没有返回结果的.

这时候就要用 if else

if … else if else 从

json:

创建 js object :

var ourDog = { “name”: “Camper”, “legs”: 4, “tails”: 1, “friends”: “everything!” };

访问 对象属性: prop1val = myObj.prop1; myObj["Space Name"]; 属性名称中如果有空格,必须把属性名称用单引号或双引号包裹起来。

使用变量来访问属性:

var someProp = “propName”; var myObj = { propName: “Some Value” } myObjsomeProp; // “Some Value”

更新属性:

ourDog.name = “Happy Camper”; ourDog“name” = “Happy Camper”;

添加属性:

ourDog.bark = “bow-wow” ourDog“bark” = “bow-wow”;

删除属性: delete ourDog.bark;

检测 对象莫属性 是否存在  .hasOwnProperty(propname)方法来检查对象是否有该属性。如果有返回true,反之返回 false。

var myObj = { top: “hat”, bottom: “pants” }; myObj.hasOwnProperty(“top”); // true myObj.hasOwnProperty(“middle”); // false

JSON JavaScript Object Notation

var ourMusic = { “artist”: “Daft Punk”, “title”: “Homework”, “release_year”: 1997, “formats”:   “CD”, “Cassette”, “LP” ], “gold”: true } ];

获取 json 属性 ourStorage.cabinet["top drawer"].folder2; // "secrets"

访问 json 数组中某项值 ourPets.cats[1]; // "Fluffy" ourPets.dogs[0]; // "Spot"

附加/增加 值到数组 array.push(val)

for 循环 var ourArr = [ 9, 10, 11, 12]; var ourTotal = 0; `` for (var i = 0; i < ourArr.length; i++) {   ourTotal += ourArr[i]; }

迭代: 把数组里面的值 全部加一遍….

数组连乘 multiplyAll([[5,1],[0.2, 4, 0.5],[3, 9]]);) should return 54  

for (var i=0; i < arr.length; i++) { for (var j=0; j < arr[i].length; j++) { product *= arr[i][j]; } }  

while 循环 var myArray = []; var i=0; while (i<5) {   myArray.push(i);   i++; } ` `→ 0 1 2 3 4

随机数生成 function randomFraction() {  var zz = Math.random(zz);   return zz; }

生成 0-9 的随机整数.

  return Math.floor(Math.random() * 10);

自定义范围内 随机整数. function ourRandomRange(ourMin, ourMax) {   return Math.floor(Math.random() * (ourMax - ourMin + 1)) + ourMin; } ourRandomRange(1, 9);

重复使用 构造函数 

var Car = function(wheels,seats,engines) {   //Change this constructor   this.wheels = wheels;   this.seats = seats;   this.engines = engines; }; `` //Try it out here var myCar; ` `

var Bike = function() {

// Only change code below this line. var gear = gear; this.setGear = function(a) { gear =a; }; this.getGear = function() { return gear; };

};

map 迭代数组. 比如数组里面的值 每个都加上3….

var oldArray = [1,2,3,4,5]; var newArray = oldArray.map(function(val){ return val+3; });

reduce 迭代一个数组 并累加的和…. var array = [4,5,6,7,8]; var singleVal = 0; singleVal = array.reduce(function(a,b) { return a + b; });

filter 过滤出值 var newArray = oldArray.filter(function(val) { return val < 6; });

数组 排序: sort  从小到大 从大到小. var array = [1, 12, 21, 2]; array.sort(function (a,b) {return b-a;});

逆序 数组 reverse newArray = array.reverse();

合并数组 concat var oldArray = [1,2,3]; var newArray = []; var concatMe = [4,5,6]; newArray = oldArray.concat(concatMe);

字符串→数组 split var string = "Split me into an array"; var array = []; array = string.split(' ');

数组连接 / 数组→字符串 join 把数组 连接成字符串…

var joinMe = ["Split","me","into","an","array"]; var joinedString = ''; joinedString = joinMe.join(" ");

替换字符串/ 删除字符 replace();

forEach  循环函数 ???????

slice 提取字符串中的一部分. 并返回这个新的字符串. str.slice(beginSlice[, endSlice])

例1:str.slice(1, 4) 提取新字符串从第二个字符到第四个 (字符索引值为 1, 2, 和 3)。 例2:str.slice(2, -1) 提取第三个字符到倒数第二个字符。