美文网首页
day5-js基础语法

day5-js基础语法

作者: _桑心人 | 来源:发表于2018-11-05 20:13 被阅读0次

    1.js基础语法

    代码示例

    <script type="text/javascript">
        //js中没有python的类,只有对象和构造方法
        /*1.对象的字面量
         对象名 = {属性名:属性值, 属性名2: 属性值2...}
         */
        p1 = {
            //对象属性
            name:'xiaoming',
            age:30,
            tel:'187382833',
            
            //对象方法
            eat:function (){
                console.log('吃饭')
            }
        }
        /*
         2.使用对象属性
            对象[属性名]
            对象.属性
         */
        console.log(p1['name'], p1.name)
        p1.eat()
        
        /*
        3.构造方法 - 用来创建对象的
        function 类名(参数列表){
            this.属性1 = 属性值1
            this.属性2 = 属性值2
            ...
            
            return this   //这句话必须写
        }
        这儿的this类似python中的self,表示当前对象
        */
        function Person(name1, age1){
            //对象属性
            this.name = name1
            this.age = age1
            this.tel = ''
            this.sex = '男'
            
            //对象方法
            this.eat = function (food){
                console.log(this.name+'在吃'+food)
            }
            
            return this
        }
        
        p2 = Person('小明', 18)
        p2.tel = '1727839923'
        p2.eat('面条')
        
        p3 = Person('小花', 20)
        p3.sex = '女'
        p3.eat('面包')
        
        //声明一个狗的对象对应的构造方法,拥有属性,颜色,年龄,品种;拥有方法:吃和叫
        
        
        
        
        
        
    </script>
    
    
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body>
        </body>
    </html>
    

    2.变量

    代码示例

    <script type="text/javascript">
        /*
         语法:
         var 变量名
         变量名 = 值
         
         说明:
         var - 是js关键字,声明变量变量的时候的用。var可以省略,省略的时候变量名后面必须赋值。
               不省略的时候变量名后可以赋值,也可以不赋值,不赋值的时候默认值是undefined
         变量名 - 标识符,不能是关键字。驼峰式命名规范
         */
        
        //声明一个变量
        var name1
        console.log(name1)
        
        name2 = '小明'
        console.log(name2)
        
        var name3 = '小花'
        console.log(name3)
        
        //同时声明多个变量
        var age=18, sex, score=100
        console.log(age, sex, score)
        
        age1 = 10, sex1 = '男'
        console.log(sex1, age1)
        
        //变量中的值: 可以赋任何其他类型的值
        age = '老年'
        console.log(age)
        
        //注意:不支持这种写法
    //  x, y = 10, 20
        
        
    </script>
    
    
    
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body>
        </body>
    </html>
    

    3.运算符

    代码示例

    <script type="text/javascript">
        //js中支持:数学运算符,比较运算符,逻辑运算符,赋值运算符,位运算符
        
        //1.数学运算符: +,-,*,/,%,**(js7),++,--
        //+,-,*,/,%,**和python一样,但是js中不支持整除(//)
        console.log(20+10, 20-10, 20*10, 5/2, 5%2, 5**2)
        //++(自加1),--(自减1)
        //变量++, ++变量, 变量--, --变量 (注意:变量必须要有值)
        //注意赋值的时候,++和--写在变量的前面和后面对应的效果不一样
        var number = 10
    //  number++  // 让number的值加1  number += 1
        ++number  // 让number的值加1  number += 1
        console.log(number)
        
    //  number--
        --number
        console.log(number)
        
        var number1 = 1, number2
        number2 = number1++    //相等于:number2=number1; number1+=1
        console.log(number1, number2)   // 2, 1
        
        var number11 = 1, number22
        number22 = ++number11  //相等于: number11+=1; number22=number11
        console.log(number11, number22) // 2, 2
        
        // 2.比较运算符: >,<,==,!=, >=, <=, ===, !==
        // 比较运算符的返回值都是布尔值
        // ==(相等): 判断值是否相等
        //===(完全相等):判断值和类型是否相等
        console.log(5==5)   //true
        console.log(5=='5') //true
        
        console.log(5===5)  //true
        console.log(5==='5')        //false  
        
        console.log(5!='5')  //false
        console.log(5!=='5') //true
        
        
        // 3.逻辑运算符:&&(与)、||(或)、!(非)
        //运算规则和python中的and,or,not一模一样
        
        // 4.赋值运算符:=, +=, -=, *=, /=, %=
        //和python一样
        
        // 5.位运算符:&,|,^, ~, >>, <<
        // & - 110 & 101 --> 100
        // | - 110 | 101 --> 111
        // ^ - 110 ^ 101 --> 011
        // ~ - ~110  --> 001
        //>> - num >> n --> num // (2**n)
        //<< - num << n --> num * (2**n)
        //和python一样
        console.log(1&2, 1|2, 1^2, ~1, 2>>1, 2<<1)
        
        //6.复合运算:数学>比较>逻辑>赋值
        //可以通过加()来改变运算顺序
        
    </script>
    
    
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body>
        </body>
    </html>
    

    4.分支结构

    代码示例

    <script type="text/javascript">
        //js中的分之结构有两个,分别是if语句和switch语句
        /*
         1.if语句
         a.if结构:
         if(条件语句){
            代码段
         }
         
         说明:
         if - 是关键字
         (){} - 固定写法
        
         执行过程:判断条件语句是否为true,为true就执行{}中的代码(不管缩进问题)
         */
         number = 110
         if(number % 2 == 0){
            console.log('是偶数')
            console.log('=======')
         }
         console.log('!!!!!!')
         
         /*
          b.if-else结构:
          if(条件语句){
            代码段1
          }else{
            代码段2
          }
          */
         number2 = 11
         if(number2%2==0){
            console.log(number2,'是偶数')
         }else{
            console.log(number2, '是奇数')
         }
         
         /*
          c.if- else if - else结构
          if(条件语句1){
            代码段1
          }else if(条件语句2){
            代码段2
          }else if(条件语句3){
            代码段3
          }else{
            代码段4
          }
          else if 相当于python中的elif
          */
         
         /*
          2.switch语句
          结构:
          switch(表达式){
            case 值1:
                代码段1
            
            case 值2:
                代码段2
            
            ...
            default:
                代码3     
          }
          执行过程:先计算表达式的值,然后从上往下一一和case后面的值进行比较,找到第一个和表达式相等的case;
                   然后将这个case作为如果,依次执行后边的所有的代码段,直到执行完或者遇到break为止。
                   如果没有哪个case的值和表达式的值一样,就直接执行default后面的代码段
                   default可以省略
          */
         num = 100
         switch(num){
            case 10:
                console.log('10')
            case 1:
                console.log('1')
                break
            case 2:
                console.log('2')
            case 11:
                console.log('11')
            default:
                console.log('default')
         }
         //练习:从服务器获取到的星期对应的值是0-6,在程序中对应打印出其对应的星期值:周1-周天
         week = 6
         switch(week){
            case 0:
                console.log('周一')
                break
            case 1:
                console.log('周二')
                break
            case 2:
                console.log('周三')
                break
            case 3:
                console.log('周四')
                break
            case 4:
                console.log('周五')
                break
            case 5:
                console.log('周六')
                break
            case 6:
                console.log('周日')
    //          break
         }
         
         
         //练习2:有一个变量存绩点(整数:0-5), 0:不及格, 1-3:及格, 4-5:优秀
         score = 3
         switch(score){
            case 0:
                console.log('不及格')
                break
            case 1:
            case 2:
            case 3:
                console.log('及格')
                break
            case 4:
            case 5:
                console.log('优秀')
                break
            default:
                console.log('成绩有误!')
         }
         
    </script>
    
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body>
        </body>
    </html>
    

    5.循环结构

    代码示例

    <script type="text/javascript">
        //js中的循环有for循环和while循环
        /*
         1.for循环
         a.for-in:和python的for循环的执行过程一样
         for(变量 in 序列){
            循环体
         }
         注意:取出来的是元素的下标或者key(属性名)
              序列可以是字符串,数组和对象
         */
        str1 = 'abc'
        for(x in str1){
            console.log(str1[x])
        }
        
        arr = [10, 20, 30]
        for (x in arr) {
            console.log(x, arr[x])
        }
        
        object1 = {name:'小明', age:18}
        for (x in object1) {
            console.log(x, object1[x])
        }
        
        /*
         b.C的for循环结构:
         for(语句1;表达式2;语句3){
            循环体
         }
         
         执行过程:先执行语句1,
                  再判断表达式2的结果是否为true,为true就执行循环体,执行完循环体再执行语句3;
                  再判断表达式2的结果是否为true,为true就执行循环体,执行完循环体再执行语句3;
                  依次类推,直到表达式2的结果为false,整个循环就结束
                  
         指导思想:语句1 - 里面写循环开始前的准备工作
                  表达式2 - 控制循环次数的
                  语句3 - 改变循环次数
         
         */
        //计算:1+2+...+100
        for(num1=1, sum1=0;num1<=100;num1 += 1){
    //      console.log(num)
            sum1 += num1
        }
        console.log(sum1)
        
        //死循环 
    //  for(;true;){
    //      
    //  }
     
    //  while(true){
    //      
    //  }
    
        /*
         2.while循环
         a.while循环:和python的while循环一样
         
         while(条件语句){
            循环体
         }
         
         b.do-while循环
         do{
            循环体
         }while(条件语句)
         
         执行过程:先执行循环体,然后再判断条件语句是否为true;
                  为true执行循环体,执行完又判断条件语句是否为true;
                  以此类推,直到条件语句的结果为false,循环就结束
                  
         value = input('数字:')
         while value !='0':
            value = input('数字')
            
            
         do{
            value = input('数字:')
         }while(value !='0')
         */
        
        /*
         3.break和continue
         和python一样
         */
        
    </script>
    
    
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body>
        </body>
    </html>
    

    6.函数

    代码示例

    <script type="text/javascript">
        //函数分为声明和调用,声明的时候不会执行函数体,只有调用函数才会执行函数体
        /*
         1.函数的声明
         a.和python相同的声明方式
         function 函数名(参数列表){
            函数体
            return 返回值
         }
         
         说明:
         function - 声明函数的关键字
         函数名 - 驼峰式命名,见名知义
         参数列表 - 参数如果没有设置默认值,相当于设置默认值为undefined
         返回值 - 没有return返回值是undefined
         
         b.以声明变量的形式声明函数
         函数名 = function (参数列表){
            函数体
            retrun 返回值
         }
         
         */
        function sum11(num1=1, num2=2){
            console.log('求两个数的和',num1, num2)
            return num1+num2
        }
        
        var mul = function (num1, num2){
            console.log('求两个数的乘积',num1, num2)
            return num1*num2
        }
        
        /*
         2.函数的调用:
         函数名(实参列表)
         
         调用的时候,保证每个参数都有值
         只能通过位置参数传参
         js中不支持不定长参数
         */
        
        sum11(10, 20)
        console.log(sum11())
        console.log(mul(10, 4))
        
        
        
    </script>
    
    
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body>
        </body>
    </html>
    

    7.字符串

    代码示例

    <script type="text/javascript">
        /*
         字符串: 由单引号或者双引号括起来的
         1.转义字符: 和python一样
         2.字符串长度: 字符串.length
         3.获取单个字符:字符串[下标]
         注意: 下标取值范围是0 ~ 长度-1;超出范围取到的是undefined;
               js中没有切片语法
         */
        //转义字符
        console.log('abc\n123')
        console.log('\tabc\'123')
        
        //字符串长度
        console.log('123abc'.length)
        
        //获取单个字符
        str1 = 'hello world'
        console.log(str1[1])
        
        /*
         4.相关运算符
         + - 将两个字符串拼接在一起产生一个新的字符串
             (注意如果是一个字符串加上其他的数据,会先将其他数据转换成字符串再相加)
             js不支持*运算符
         比较运算(>, <. ==, !=, ===, !==)
         >、< -  和python一样,还是比字符编码值的大小
         */
        console.log('abc'+'hnm')
        console.log('abc'+100, 'abc'+true, 'abc'+[1,2,3])
    //  str1 = new String([10, 20, 30])
    //  console.log(str1)
    
    //  console.log('abc'*3)   // NaN -> 是数字类型中的一个特殊值,表示一个不存在的数字
    //  console.log(10/0)   // Infinity -> 无穷大
        console.log('abc' > 'abaaaa')
        
        /*
         5. 相关方法(看菜鸟的表)
         match(正则表达式) - 根据正则表达式匹配结果。
         
         js中的正则表达式是写在//之间的
         */
        str1 = 'abc23hjs89jskk834jsdfj78hfjh9sdf9'
        result = str1.match(/[a-z]+/)
        console.log(result[0])
        
        result = str1.replace(/\d/, '*')
        console.log(result)
        
        
        
    </script>
    
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body>
        </body>
    </html>
    

    8.数组

    代码示例

    <script type="text/javascript">
        //数组就是python中的列表
        /*
         1.数组是有序,可变的,里面的元素可以是任意类型的数据
         2.增删改查
         */
        /*a.查(获取数组中的元素) - 不支持切片
         数组[下标]
         
         数组.slice(开始下标, 结束下标) - 切片
         */
        arr1 = [1, 2, 3, 'abc']
        console.log(arr1[3])
        //获取数组的长度
        console.log(arr1.length)
        
        
        result = arr1.slice(0, 2)
        console.log(result, arr1)
        
        /*
         b.增(添加元素)
         数组.push(元素) - 将元素添加到数组的最后
         */
        arr1.push('hello')
        console.log(arr1)
        
        /*
         c.删(删除元素)
         数组.pop() - 删除最后一个元素
         
         数组.splice(开始删除的下标, 删除的个数)  - 从数组指定的下标开始删除指定个数元素
         */
        arr1.pop()
        console.log(arr1)
        
        arr1.splice(2, 1)
        console.log(arr1)
        
        /*
         d.改(修改元素的值)
         数组[下标] = 新值  - 修改指定下标的元素
         
         数组.splice(开始下标,个数, 多个其他参数) - 用其他参数替换开始下标开始后的指定个数个元素
         */
        arr1 = [1, 2, 3, 4, 'abc']
        arr1[0] = 10
        console.log(arr1)
        
        arr1.splice(1,2, 'a','b', 'c')
        console.log(arr1)
        
        
        
        
        
        
        
        
        
        
    </script>
    
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body>
        </body>
    </html>
    

    9.对象

    代码示例

    <script type="text/javascript">
        //js中没有python的类,只有对象和构造方法
        /*1.对象的字面量
         对象名 = {属性名:属性值, 属性名2: 属性值2...}
         */
        p1 = {
            //对象属性
            name:'xiaoming',
            age:30,
            tel:'187382833',
            
            //对象方法
            eat:function (){
                console.log('吃饭')
            }
        }
        /*
         2.使用对象属性
            对象[属性名]
            对象.属性
         */
        console.log(p1['name'], p1.name)
        p1.eat()
        
        /*
        3.构造方法 - 用来创建对象的
        function 类名(参数列表){
            this.属性1 = 属性值1
            this.属性2 = 属性值2
            ...
            
            return this   //这句话必须写
        }
        这儿的this类似python中的self,表示当前对象
        */
        function Person(name1, age1){
            //对象属性
            this.name = name1
            this.age = age1
            this.tel = ''
            this.sex = '男'
            
            //对象方法
            this.eat = function (food){
                console.log(this.name+'在吃'+food)
            }
            
            return this
        }
        
        p2 = Person('小明', 18)
        p2.tel = '1727839923'
        p2.eat('面条')
        
        p3 = Person('小花', 20)
        p3.sex = '女'
        p3.eat('面包')
        
        //声明一个狗的对象对应的构造方法,拥有属性,颜色,年龄,品种;拥有方法:吃和叫
        
        
        
        
        
        
    </script>
    
    
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body>
        </body>
    </html>
    

    运行结果可自行测试

    相关文章

      网友评论

          本文标题:day5-js基础语法

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