美文网首页
JavaScript语法基础

JavaScript语法基础

作者: 洛小白洛公子 | 来源:发表于2018-06-29 10:16 被阅读0次
    //所有在双斜线之后的内容都属于注释
    //变量是表示值的一个符号名字
    //变量是通过var关键字声明的
    var x;      //声明一个变量
    //值可以通过等号赋值给变量
    x = 0;      //现在变量的值为0
    console.log(x)  //通过变量获得其值
    
    //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",   //属性“topic”的值是"JavaScript"
        fat: true              //属性“fat”的值是"true"
    };                           //右花括号标记了对象的结束
    
    //通过“.”或者“[]”来访问对象的属性
    book.topic          // =>"JavaScript"
    book["fat"]         // => true:另外一种获取属性的方式
    book.author = "Flanagan";   //通过赋值创建一个新的属性
    book.content = {};          //{}是一个空对象,它没有属性
    
    //JavaScript同样支持数组(以数字为索引的列表)
    var primes = [2, 3, 5, 7];     //拥有4个值的数组,有由“[”和“]”划定边界
    primes[0]                   // => 2:数组中的第一个元素(索引为0)
    primes.length               // => 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]]      //数组的元素也是数组
    }
    
    //运算符作用于操作数,生成一个新的值
    //最常见的是算术运算符
    3 + 2           //=> 5: 加法
    3 - 2           // => 1 : 减法
    3 * 2           // => 6 :乘法
    3 / 2           // => 1.5:除法
    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;     //自乘:和"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                  // => 大于等于
    "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 plus1(x) {     //定义了名为plus1的一个函数,带有参数x
        return x + 1;       //返回一个比传入的参数大的值
    }                          //函数的代码块是由花括号包裹起来的部分
    plus1(y);               //=>4:y为3,调用函数的结果为 3 + 1
    
    var square = function (x) {     //函数是一种值,可以赋值给变量
        return x * x;               //计算函数的值
    };                               //分号标识了赋值语句的结束
    square(plus1(y));               // => 16:在一个表达式中调用两个函数
    
    //当函数赋值给对象的属性,我们称为“方法”,所有的JavaScript对象都含有方法
    var a = [];                //创建一个空数组
    a.push(1, 2, 3);              //push()方法想数组中添加元素
    a.reverse();                //将数组元素的次序反转
    
    //我们也可以定义自己的方法,“this”关键字是对定义方法的对象的引用
    
    points.dist = function () { //定义一个方法来计算两点之间的距离
        var p1 = this[0];   //通过this获得当前数组的引用
        var p2 = this[1];   //并取得调用的数组前两个元素
        var a = p2.x = p1.x;    //X坐标轴上的距离
        var b = p2.y - p1.y;     //Y坐标轴上的距离
        return Math.sqrt(a * a + b * b);  //勾股定理,用Math.sqtr();来计算平方根
    };
    points.dist();              //=> 1.414:求得两个点之间的距离
    
    //这些JavaScript语句使用该语言包含条件判断和循环
    function abs(x) {           //求绝对值的函数
        if (x >= 0) {            //if语句
            return x;           //如果比较结果为true则执行这里的代码
        }                           //子句的结束
        else {                      //当if条件不满足时执行else子句
            return -x;         //如果分支中只有一条语句,花括号是可以省略的
        }
    }
    
    function factorial(n) {         //计算阶乘的函数
        var product = 1;            //product赋值为1
        while (n > 1) {              //当()内的表达式为true时循环执行{}内的代码
            product *= n;           //product = product * n;的简写
            n--;                    // n = n - 1;的简写
        }
        return product;         //返回product
    }
    
    factorial(4);
    
    function factorial2(n) {    //实现循环的另一种写法
        var i, product = 1;
        for (i = 2; i <= n; i++)
            product *= i;
        return product;
    }
    
    
    //定义一个构造函数以初始化一个新的Point对象
    function Point(x, y) {       //按照惯例,构造函数均以大写字母开始
        this.x = x;             //关键字this代指初始化的实例
        this.y = y;             //将函数参数存储为对象的属性
    }                           //不需要return
    
    
    //使用new 关键字和构造函数老创建一个实例
    var p = new Point(1, 1);//平面几何中的点
    
    //通过给构造函数的prototype对象赋值来给Point对象定义方法
    
    Point.prototype.r = function () {
        return Math.sqrt(           //返回 x^2 + y^2的平方根
            this.x * this.x +       //this值代调用这个方法的对象
            this.y * this.y
        );
    };
    
    p.r();          //=>1.414....
    
    

    相关文章

      网友评论

          本文标题:JavaScript语法基础

          本文链接:https://www.haomeiwen.com/subject/kqwoyftx.html