1 javascript 核心语言笔记

 1 //所有的双斜线之后的内容都属于注释;
 2 //变量是表示值的一个符号名字;
 3 //变量是通过var 关键字声明的;
 4   var x;  //声明一个变量
 5 //值可以通过等号赋值给变量
 6 x = 0;   //现在的变量x的值为0
 7 x       //=> 0:通过变量获取其值
 8 //javascript 支持多种数据类型
 9 x = 1;               //  数字
10 x = 0.01;           //  整数与实数共用一种数据类型
11 x = "hello world"; //   由双引号内的文本构成的字符串
12 x = 'javascript'; //    由单引号内的文本同样构成字符串
13 x = true;        //     布尔值 真
14 x = false;      //      布尔值 假  
15 x = null;      //       null 是一个特殊的值  ”空“
16 x = undefined;// undefined 和null 非常类似

javascript中两个非常重要的数据类型是对象和数组

 1  //javascript中最重要的类型就是对象
 2  //对象是名/值对的集合,或字符串到值映射的集合
 3     var book = {
 4          topic: 'javascript',
 5          fat: true 
 6     };
 7   //通过“. ”或“[]”来访问对象属性
 8       book.topic                     // => javascript 
 9       book["fat"]                   // =>返回的是true 另外一种获取属性的方式
10       book.author = "flanagan";    //通过赋值来创建一个属性
11       book.contents = {};         //{} 是一个空对象没有属性
12 
13 
14     //javascript同样支持数组 (以数字为索引的列表)
15     var primes =[2,3,5,7];  //拥有4个值的数组,由“”["和"]“”划定边界
16     primes[0];               //=>2:数组中的第一个元素(索引为0)
17     primes.length;     //=> 4 :数组中的个数
18     primes[primes.length-1]   //=> 7:数组的最后一个元素
19     primes[4] = 9;                //通过赋值来添加新元素
20     primes[4] = 11;              //通过赋值来改变已有的元素
21     var empty = [];              // []空数组,它具有0个元素
22     empty.length                 //=>0
23 //数组和对象中都可以包含另一个数组或者对象:
24     var points =[
25       {x:0,y:0},     //具有两个元素的数组
26       {x:1,y:1}     //每个元素都是一个对象
27     ];  
28 
29      var data ={                    //一个包含两个属性的对象
30         trial1: [[1,2],[3,4]],     //每一个属性都是数组
31         trial2: [[2,3],[4,5]]      //数组的元素也是数组 
32    };

javascript中常见的表达式写法像下面代码这样使用运算符(operator):

 1 //运算符作用于操作数,生成一个新的值
 2 //最常见的算术运算符
 3 3 + 2                               // =>5 : 加法
 4 3 - 2                                // =>1 : j减法
 5 3*2                                // =>6 : 乘法
 6 3/2                                // => 1.5 : 除法 
 7 points[1].x - points[0].x    //  => 1 : 更复杂的操作数也能照常工作
 8 "3" + "2"                        // => "32": + 可以完成加法运算也可以作字符串连接 
 9 
10 //javascript 定义了一些运算符的简写形式
11 
12 var count = 0;    //定义了一个变量
13 count++;           //自增1
14 count--;             //自减1
15 count += 2;      //自增2: 和“count = count + 2;” 写法一样
16 count *= 3;      //自乘3: 和“count = count *3;”写法一样  
17 count               // =>6: 变量名本身也是一个表达式
 1     //相等关系运算符用来判断两值是否相等
 2    //不等 、大于、小于运算符的结果是true或false
 3     var x = 2, y = 3;              //这里的 = 等号是赋值的意思,不是比较相等
 4     x == y                        //=> false :相等
 5     x != y                       //=> true :不等 
 6     x < y                       //=>true :小于 
 7     x <= y                     //true :小于等于  
 8     x > y                     //=>false :大于 
 9     x >= y                   //=>false :大于等于 
10     "two" == "three"        //=>false :两个字符串不相等
11     "two" > "three"        //=>true :"tw"在字母表中的索引大于"th"
12     false == (x > y)      //=>true :false和false 相等
13 
14     //逻辑运算符是对布尔值的合并或求反
15     (x == 2) && (y == 3) //=> true :两个比较都是true, &&表示"与"
16     (x > 3) || (y < 3)   //=> false :两个比较都不是true, ||表示"或"
17     !(x == y)            //=> true : !求反   
18 
19 
20     //函数是带有名称(named)和参数的javascript代码段,可以一次定义多次调用
21 
22     function plus1(x){     //定义了名为plus1的一个函数,带有参数的x
23        return x +1        //返回一个比传入的参数大的值  
24     }                    // 函数的代码块有花括号包裹起来的部分 
25     plus1(y)             //=> 4 :y为3,调用函数的结果为3+1               
26     var square = function(){  //函数是一种值,可以复制给变量
27         return x*x           //计算函数的值
28     };                      //分号标示了赋值语句的结束 
29     square(plus1(y))     // => 16 :在一个表达式中的调用两个函数

 //当将函数和对象合写在一起时,函数就变成了“方法”(method):

 1 //当函数赋值给对象的属性,我们称为“方法”,所有的javascript对象都含有方法
 2     var  a =[];         //创建一个空数组
 3     a.push(1,2,3);      //push()方法向数组中添加元素 
 4     a.reverse();        //另一个方法 reverse() 将数组元素的次序反转 
 5  //我们也可以定义自己的方法 “this”关键字是对定义的方法的对象的引用
 6     points.dist=function(){     //定义一个方法用来计算两点之间的距离
 7         var p1=this[0];         //通过this 获得对当前数组的引用 
 8         var p2=this[1];         //并取得调用的数组前两个元素
 9         var a = p2.x-p1.x;      //x坐标轴上的距离
10         var b = p2.y-o1.y;      //y坐标轴上的距离 
11        return Math.sqrt(a*a + b*b)      //勾股定理 用Math.sqrt()来计算平方根   
12     };
13        points.dist();           //=> 1.44 求得两点之间的距离      
14 
15 // 这些javascript语句使用该语法包含条件判断和循环
16      function abs(x) {               //球绝对值函数
17          if(x>=0){                   //if语句
18            return x;                 //如果为true则执行这里的代码
19          }else{                      //if条件不满足时执行else语句      
20            return -x;
21          }
22      }
23 
24     function factorial(n) {          //计算阶乘函数
25        var product=1;                //product赋值为1
26        while(n>1){                   //当n大于1时执行花括号语句
27         product *=n;                 //product*=n 是 product= produtct*n的简写形式
28         n--;                         //n--;是 n=n-1的简写形式
29        }
30        return product;               //返回product
31     }
32     factorial(4);                  //=>24: 1*4*3*2
33        
34        function factorial2(n) {       //实现循环的另一种函数写法    
35            var i,product =1;           //product赋值为1
36            for(i=2;i<n;i++){           //将i从2自增到n;
37               product *=i;             //循环体,当循环只有一句话可以省略{};
38               return product;
39            }
40        
41        }
42     factorial2(5);                     //=> 120 :  1*2*3*4*5;
43 
44    //javascript是一种面向对象的编程语言
45      //定义一个构造函数以及初始化一个新的point对象
46          function Point(x,y) {     //按照惯例,构造函数均已大写字母开始  
47              this.x=x;             //关键字this指代初始化的实例      
48              this.y=y;             //将函数参数储存为对象的属性
49            
50          }
51 
52          var p= new Point(1,1);          //使用new关键字和构造函数来创建一个实例
53          Point.prototype.r =function() {     //通过给构造函数的prototype对象赋值来给point对象定义方法
54               return Math.sqrt(
55                 this.x*this.x+this.y*this.y;
56                 )
57          };
58         // point实例对象p(以及所有的point实例对象)继承了方法 r()
59            p.r();   //=>1.414... 
原文地址:https://www.cnblogs.com/deveil/p/5923021.html