// 定义person对象 // 属性是键值对 var person = { name:'sinlearn', age:23, email:'1111@qq.com', score:90 //最后一个属性不要加逗号 }
流程控制
其它的和java类似
1 2 3 4 5 6 7 8 9
<script> var age = [1,2,3,4,4,5,5,5]; for(var n in age){ console.log(age[n]); } age.forEach(function (value) { console.log(value); }) </script>
Map和Set
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
<script> //ES6 Map 'use strict' var map = new Map([['tom',99],['jack',98],['michal',82]]); let tom = map.get('tom'); console.log(tom); map.set('nick',100); map.delete("nick");
//ES6 Set: 无序不重复集合 let set = new Set([3,1,1,1,1,1]); set.add(2); set.add(3); set.delete(3); set.has(5); </script>
函数及面向对象
函数定义
定义范式一:
1 2 3 4 5 6 7
function abs(x) { if (x>=0){ return x; }else { return -x; } }
<script> var r; //全局变量 function f() { // var x,y,z,a,b,c,d; var x = 1; return x+1; } function f() { var x = 'a'; return x; } x = x +2; </script>
<script> var x = 'xxx'; alert(x); alert(window.x); window.alert(x); //window 表示全局对象 </script>
//把代码全部放入自己定义的唯一空间名字中,降低全局命名空间的问题。 var KuangAPP = {}; KuangAPP.name = "kuangsheng"; KuangAPP.add = function (a,b) { console.log(a+b); } KuangAPP.add(1,2);
JQuery --- $
局部作用域:let
建议用let去定义局部作用域的变量
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
<script> function aaa() { for (var i = 0; i <100 ; i++) { console.log(i) } console.log(i+1) } aaa(); 1- 101 </script>
<script> function aaa() { for (let i = 0; i <100 ; i++) { console.log(i) } console.log(i+1) // Uncaught ReferenceError: i is not defined } aaa(); </script>
常量const
在ES6之前,怎么定义常量:只能用全部大写字母命名的变量就是常量,通过规范建议不要修改这样的值
在ES6引入了常量关键字: const,就不能修改了
方法
1 2 3 4 5 6 7 8 9 10 11
<script> var student= { name:"小明", birth: 1997, age: function () { var now = new Date().getFullYear(); return now - this.birth; }
} </script>
方法就是把函数放在对象的里面,对象只有两个东西:属性和方法
对象调用: student.name
方法调用: student.age()
this.代表什么?
1 2 3 4 5 6 7 8 9 10 11
<script> function getAge() { var now = new Date().getFullYear(); return now - this.birth; } var student= { name:"小明", birth: 1997, age: getAge() } </script>