快速浏览
变量和赋值 |
//所有在双斜杠之后的内容都是注释
//变量是表示值的一个符号名字 //变量是通过var关键字声明的 var x;// 声明一个变量x
//值可以通过等号赋值给变量 x = 0;// 现在变量x的值为0 x;// => 0:通过变量获取其值
// JavaScript支持多种数据类型 x = 1;// 数字 x = 0.01;// 整数和浮点数共用一种数据类型 x ="hello world";// 字符串 x ='JavaScript';// 字符串 x =true;// 布尔值 x =false;// 另一个布尔值 x =null;// null是一个特殊的值,意思是"空" x =undefined;// undefined和null非常类似 |
对象和数组 |
// JavaScript中的最重要的类型就是对象 //对象是名/值对的集合,或字符串到值映射的集合 var book = { topic : "JavaScript", fat : true };
//通过"."或"[]"来访问对象属性 book.topic;// => "JavaScript" book["fat"];// => true:另外一种获取属性的方式 book.author ="Flanagan";// 通过赋值创建一个新属性 book.contents = {};// {}是一个空对象,它没有属性
// JavaScript同样支持数组(以数字为索引的列表) var primes = [2, 3, 5, 7];// 拥有4个值的数组,由"["和"]"划定边界 primes[0];// => 2:数组中的第一个元素(索引为0) primes.lenth;// => 4:数组中的元素个数 primes[primes.length - 1];// => 7:数组的最后一个元素 primes[4] = 9;// 通过赋值来添加新元素 primes[4] = 11;// 或通过赋值来改变已有的元素 var empty = [];// []是空数组,它具有0个元素 empty.length;// => 0
//数组和对象中都可以包含另一个数组或对象: var points = [{x : 0, y : 0}, {x : 1, y : 1}]; var data = [{ trial1 : [[1, 2], [3, 4]], trial2 : [[2, 3], [4, 5]] }]; |
运算符 |
//运算符作用于操作数,生成一个新的值 //最常见的是算术运算符(Arithmetic operators) 3 + 2;// => 5:加法(addition) 3 - 2;// => 1:减法(subtraction) 3 * 2;// => 6:乘法(multiplication) 3 / 2;// => 1.5:除法(division) points[1].x - points[0].x;// => 1:更复杂的操作数也能照常工作 "3" +"2";// => "32": +可心完成加法运算也可以作字符串连接
// JavaScript定义了一些算术运算符的简写形式 var count = 0;// 定义一个变量 count++;// 自增1 count--;// 自减1 count += 2;// 自增2:和"count = count + 2;"写法一样 count *= 3;// 自乘3:和"count = count * 3;"写法一样 count;// => 6:变量名本身也是一个表达式
//相等关系运算符用来判断两值是否相等 //不等、大于、小于运算符的运算结果是true或false var x = 2, y = 3;// 这里的 =等号是赋值的意思,不是比较相等 x == y;// => false:相等 x != y;// => true:不等 x < y;// => true:小于 x <= y;// => true:小于等于 x > y;// => false:大于 x >= y;// => false:大于等于 "two" =="three";// => false:两个字符串不相等 "two" >"three";// => true: "tw"在字母表中的索引大于"th" false == (x > y);// => true: false和false相等
//逻辑运算符是对布尔值的合并或求反 (x == 2) && (y == 3);// => true:两个比较都是true, &&表示"与" (x > 3) || (y < 3);// => false:两个比较不都是true, ||表示"或" !(x == y);// => true: |求反 |
函数与“方法” |
//函数是一段带有参数的JavaScript代码段,可以多次调用 function plus_1(x){ return x + 1; } plus_1(y);// => 4: y为3
//函数是一种值,可以赋值给变量 var square =function(x){ return x * x; }; square(plus_1(y));// => 16:在一个表达式中调用两个函数
//当将函数和对象合在一起时,函数就变成了"方法"(method) var a = [];// 创建一个空数组 a.push(1, 2, 3);// push()方法向数组中添加元素 a.reverse();// 将数组元素的次序反转 //也可以自定义自己的方法, "this"关键字是对定义方法的对象的引用 points.dist =function(){ var p1 =this[0]; var p2 =this[1]; var a = p2.x - p1.x; var b = p2.y - p1.y; return Math.sqrt(a * a + b * b); }; points.dist(); |
最常见的JavaScript控制语句 |
//这些JavaScript语句使用该语法包含条件判断和循环 //使用了类似C/C++、Java和其他语言的语法 function abs(x){// 求绝对值的函数 if( x >= 0){// if语句... return x;// 如果比较结果为true则执行这里的代码 }else{ return -x;// 当if条件不满足时执行else子句 } }
function factorial(n){// 计算阶乘的函数 var product = 1;// 给product赋值为1 while(n > 1){// 当()内的表达式为true时循环执行{}内的代码 product *= n;// "product = product * n;"的简写形式 n--; }// 循环结束 return product;// 返回product } factorial(4);// => 24: 1 * 4 * 3 *2
function factorial(n){// 实现循环的另一种写法 var i, product = 1; for(i = 2; i <= n; i++){ product *= i; } return product; } factorial(5);// => 120: 1 * 2 * 3 * 4 * 5 |
“面向对象” |
//定义一个构造函数以初始化一个新的Point对象 function Point(x, y){// 按照惯例,构造函数均以大写字母开始 this.x = x;// 关键字this指代初始化的实例 this.y = y;// 将函数参数存储为对象的属性 }// 不需要return
//使用new关键字和构造函数来创建一个实例 var p =new Point(1, 1);// 平面几何中的点(1, 1)
//通过给构造函数的prototye对象赋值来给Point对象定义方法 Point.prototype.r =function(){ return Math.sqrt(this.x * this.x// this指代调用这个方法的对象 +this.y *this.y);// 返回 x^2 + y^2的平方根 }; |
已使用 传智播客 创建。