美文网首页
2018-11-05 Day05 js基础语法

2018-11-05 Day05 js基础语法

作者: EryangZ | 来源:发表于2018-11-05 20:40 被阅读0次

    00-什么是js

    <!-- 
        1.什么是js
            js是javascript的缩写,是一门专门用来处理网页中的行为的脚本语言,也是web标准中的行为标准
            javascript和java没有关系
        
        2.常用事件
        onclick -- window.alert(内容) 在网页内弹出一个对话框
            
        3.在什么地方写js代码(针对网页来说)
            内联js:写在标签事件相关的属性中,例如onclick属性,属性值是js代码
            内部的js:写在script标签的内容中,script标签理论上是可以放在html文件的任意位置,但一般放在head或者body中
            外部的js:写在一个外部的一个js文件中(后缀是.js的文件),然后通过script的src属性来导入
        
        4.js能做什么事情
            a.js可以修改标签中的内容
            b.修改标签的样式
            c.插入html代码(写哪儿就在哪儿插入)
    -->
    
    
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title></title>
            <!-- 内部的js -->
            <!-- <script type="text/javascript"> -->
                <!-- window.alert('script标签中的js') -->
            <!-- </script> -->
            <!-- 外部js
            <!-- <script type="text/javascript" src="index.js"></script> -->
        </head>
        <body>
            <!-- 内联js -->
            <!-- <button type="button" onclick="window.alert('按钮被点了!')">点我啊</button> -->
            
            <!-- 修改内容 -->
            <p id="p1">puthon基础</p>
            <button onclick="document.getElementById('p1').innerHTML = 'js基础'">修改内容</button>
        
            <!-- 修改样式 -->
            <button type="button" onclick="document.getElementById('p1').style.color = 'red'">修改样式</button>
        
            <!-- 插入html代码 -->
            
            <script type="text/javascript">
                document.write('<p>插入的段落</p>')  
            </script>
        </body>
    </html>
    
    

    01-js基础语法

    
    <script type="text/javascript">
        // 1.注释
                //当行注释
                    
                /*
                多行注释
                多行注释
                */
            
        //2.标识符
            /*标识符是用来命名的,js中的标识符要求
            是由字母、数字、下划线、$组成,数字不能开头
            */
           //js中大小写敏感
        //3.常用的数据类型
            //a.数字类型(Number)、布尔(Boolean)、字符串(String)、数组(Array) 
            // 对象(Object)、函数(Function)等
            
            //数字类型(Number):包含所有的数字(整数和小数、科学计数),不支持虚数
            //布尔(Boolean):treu或者false
            //字符串(String):支持双引号和双引号
            //数组(Array):相当于python中的列表
            //对象(Object):python中对象和字典的结合
            //函数(Function):相当于python中的函数
            
            //b.typeof(数据) - 获取数据类型
            
            //c.new 类型名(数据) - 将数据转换为指定的类型
            
            //d.常用的特殊值:undefined(相当于python中的None), null(一般用来清空)
            
        //4.格式:js没有缩进的要求
    </script>
    
    
    
    
    <script type="text/javascript">
            
        var abc = 100
        console.log(abc)
        var p1 = {
            name:"余婷",
            age:18,
            sex:"女",
            }
        function func_name(){
            console.log('函数体')
        }
        
        func_name()
        
        console.log(typeof(100))
        console.log(func_name)
        var a = new Boolean(44)
        console.log(a)
    </script>
    
    
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <meta name="viewport" content="width=device-width, initial-scale=1">
            <title></title>
        </head>
        <body>
            
        </body>
    </html>
    

    02-变量

    <script type="text/javascript">
        
        /*
        语法(最好用var声明):
            a.var 变量名
            b.变量名 = 值
        说明:
            var - js关键字,声明变量的时候写,用var声明变量的时候可以不给变量赋值,这时候默认值是undifind
                  省略的时候变量名后必须赋值 
            变量名 - 是标识符,不能是关键字,驼峰式命名规范,变量可以赋任何其他类型的值
        
        */
       
       
       
       //声明一个变量
        name1 = 'abc'
        console.log(name1)
        
        var name2 = '小红'
        console.log(name2)
        
        //同时声明多个变量
        //不用var,必须每个赋值
            age = 18, name = '小红'
            console.log(age, name)
        //用var
            var age = 10, sex, name = '小明'
            console.log(age, sex, name)
        
        //注意:不支持这种写法
        //x, y = 1, 2
    </script>
    
    
    
    

    03-js运算符

    <script type="text/javascript">
        //js中支持:数学运算符,比较运算符,逻辑运算符,赋值运算符,位运算符
        
        //1.数学运算符:+  -  *  /  %  **(js7)  ++(自加1)  --(自减1)
        console.log(10+20, 20-10, 20*10, 20/10, 20%10, 5**2)
          //变量++, ++变量, 变量--, --变量(注意:变量必须要有值)
        
        //2.比较运算符:>  <  ==  !=  >=  <=  ===  !==
        //  返回值都是布尔值
        //  ==(相等) - 判断值是否相等  
        //  ===(完全相等) - 判断值和类型是否相等  
        
        //3.逻辑运算符:&&(与)  ||(或)  !(非)
        //  运算规则和python中的and or not一模一样
        
        //4.赋值运算符:=. +=, -=, *=, /=, %=, **=
        //  和python一样
        
        //5.位运算符:&  |  ^  ~  >>  <<
        //  和python一样
        
        //6.符合运算:数学>比较>逻辑>赋值
        //  通过加括号来改变运算顺序
        
        
        //++  -- 运用
            var number = 25
            number++
            console.log(number)
            ++number
            console.log(number)
            number--
            console.log(number)
            
            var number1 = 1, number2
            number2 = number1++  //相当于:number2=number1;number1++
            console.log(number1, number2) // 2, 1
            
            var number11 = 1, number22
            number22 = ++number11  //相当于:;number11++;number22=number11
            console.log(number11, number22) // 2, 2
        
        
        //==  ===运用
        console.log(5==5)
        console.log(5=='5')
        
        console.log(5===5)
        console.log(5==='5')
    </script>
    

    04-分支结构

    <script type="text/javascript">
        //js中的分支结构有两个,if语句和switch语句
        
        /*
        1.if语句
          a.结构:
            if(条件语句){
                条件语句成立执行的代码块
            }
          说明:
            if - 关键字
            (){} - 固定写法
            
            
          b.if - else
            if(){
                
            }else{
                
            }
            
          c.if - else if - else
            if(){
                
            }else if(){
                
            }else{
                
            }
          
          执行过程:判断条件语句是否为true,为true执行大括号的内容(不管缩进问题)
        */
        
        //if判断是否偶数
            var num = 9
            if(! num&1){
                console.log('是偶数')
            }else{
            console.log('是奇数')  
            }
        
        
        /*
        2.switch语句
          结构:
            switch(变量/表达式){
                case 值1:{
                    代码段1
                }
                case 值2:{
                    代码段2
                }
                default:{
                    代码段3
                }
                
            }
            
            
          执行过程:
            先计算switch变量或者表达式的值,从上往下找到值与表达式相等的case,执行相应的case后面的所有的代码段,执行完或者遇到break为止
        
        */
        
        //switch语句
        num = 10
        switch(num){
            case 1:{
                console.log('1')
            }
            case 10:
                console.log(true)
            default:
                console.log('没有找到')
            break
            case 3:
                console.log('3')
        }
        
        
        //练习:或服务器获取到的星期对应的值是0-6,在程序中对应打印出其对应的星期值
        week = 5
        switch(week){
            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
            case 0:
                console.log('星期日')
        }
        
        //练习2:有一个变量存绩点(整数:1-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('优秀')
            default:
                console.log('成绩有误')
        }
        
        
    </script>
    

    05-循环结构

    <script type="text/javascript">
        //js中的循环有for循环和while循环,每种循环有两种结构
        
        /*
        1.for循环
            a.for-in循环:和python的for循环的执行过程一样,但取出来的是元素的下标
              结构:for 变量 in 序列{
                        循环体
                    }
            
            b.c结构的for循环
              结构:for(表达式1;表达式2(为条件语句);表达式3){
                  循环体
              }
              执行过程:先执行表达式1,再判断表达式2的结果是否为true,为true就执行循环体,执行完循环体再执行表达式3
                      执行完表达式3在判断表达式2的结果是否为true,为true就执行循环体,执行完再执行表达式3,指导表达式2的结果为
                      false,整个循环就结束
              书写思想:表达式1里面写循环开始前的准备工作
                       表达式2中写控制循环次数的条件
                       表达式3中写的是让表达式2的条件接近于结束的条件
                       
        */
        
        // for-in循环遍历出的是下标或者属性名
        a = [10, 20, 30]
        for(x in a){
            console.log(x, a[x])
        }
        
        object1 = {name:'小明', age:18}
        for(x in object1){
            console.log(x, object1[x])
        }
        
        //c的for循环 1+2+..100
        for(num = 1, sum1 = 0; num <= 100;num += 1){
            sum1 += num
            // console.log(sum1)    
        }
        console.log(sum1)
        
        
        
        /*
        2.while循环
            a.while循环:和python的while循环一样
              格式:while(条件语句){
                    循环体
                   }
          
            b.do-while循环
              格式:do{
                  循环体
              }while(条件语句)
              
              执行过程:先执行循环体,然后再判断条件语句是否为true;为true就执行循环体,执行完在判断
                       直到条件语句的结果为false,循环就结束
        
        
        
        
        3.break  continue  和python一样
        
        */
        
        
        
        
        
        
        
    </script>
    
    
    
    
    
    
    
    

    06-函数

    <script type="text/javascript">
        //函数分为声明和调用,声明的时候不会执行函数体,只有调用才会执行函数体
        
        /*
        1.函数的声明
          a.和python相同的声明方式
            function 函数名(参数列表){
                函数体
                return 返回值
            }
        
          说明:function - 声明函数的关键字
                函数名 - 驼峰式命名,见名知义
                参数没有设置默认值,默认为undefined
                返回值 - 没有return返回值为undefined
        
        
          函数的调用:
            格式:函数名(实参列表)
            调用的时候保证每个参数都有值
            关键字参数没有效,只能通过位置参数传参,也不支持不定长参数
        */
        
        
        function sum2(num1, num2){
            return num1 + num2  
        }
        console.log(sum2(1, 2))
        
         
          /*
          b.以声明变量的形式声明变量
            函数名 = function(参数列表){
                函数体
                return 返回值
            }
    
        
          */
        
          // 两数之和
          sum12 = function(math, chinese){
              return math * chinese
          }
          console.log(sum12(10, 10))
        
        
        
    </script>
    

    07-字符串

    <script type="text/javascript">
        /*
        1.字符串:有单引号或者双引号括起来
            a.字符串内可以有转义字符:和python一样
            b.字符串长度:字符串.length
            c.获取单个字符:字符串[下标]
              注意:js中的下标范围是0-长度-1,超出范围取到的是undefined
                   js中没有切片语法
            
            d.相关运算符
              +:将两个字符串拼接在一起,如果是字符串加上其他数据,会先将其他数据转化成字符串再拼接在一起
              比较运算(>  <  ==  !=  ===  !==  <=  >=):和python一样,比较字符的编码值大小
            
            e.相关方法(看菜鸟的表)
              match(正则表达式) - 根据正则表达式匹配结果
        
        */      
        
        
        console.log('abc\n123')
        console.log('abcde12345'.length)
        
        // 获取单个字符,不支持负的
        str1 = 'abcdefg'
        console.log(str1[1])
        // 运算
        a = 'abc', b = 'def', c = 10
        console.log(a + b)
        console.log(a + c, a + true, a + [1, 2, 3])
        // console.log(a*c)  不支持乘法,结果为NaN 表示数字不存在
        console.log(c/0)   //结果为Infinity  表示无穷大
        console.log(a > b)
        
        // 相关方法
        str1 = 'abc23hjs89jskk834jsdfj78hfjh9sdf9'
        result = str1.match(/[a-zA-Z]+/)
        console.log(result)
        
        result2 = str1.replace(/\d+/, '*')
        console.log(result2)
        
        
    </script>
    

    08-数组

    <script type="text/javascript">
        //数组就是python中的列表
        /*
        1.数组是有序、可变的
        2.增删改查
        
        
        
        
        */
        
        
        /*
        a.查(获取数组中的元素, 不支持切片)
          只能获取单个不能获取部分
          数组[下标]
        b.增(添加元素)
          push() - 将元素添加到数组的最后,相当于python中的append
        
        c.删
          array.pop() - 删除最后一个元素
          array.shift() - 删除开始元素
          array.slice(开始下标,结束下标) - 切片
          array.splice(开始下标,个数) - 从开始下标开始删除指定个数元素
        
        d.改(修改元素的值)
          数组[下标] = 新值
          array.splice[开始下标,个数,多个其他参数] - 先删除开始下标加个数选择的元素,再在开始下标处添加多个其他的参数
          
        
        */
        arr1 = [1, 2, 3, 'abc']
        console.log(arr1[3])
        console.log(arr1.length)  //获取数组长度
        
        arr1.push('hello')
        arr1[5] = 8
        console.log(arr1)
        
        arr1.pop()
        console.log(arr1)
        
        result = arr1.slice(0, 2)  //切片
        console.log(result, arr1)
        
        result = arr1.splice(3, 1)
        console.log(result, arr1)
        
        arr2 = [1, 2, 3, 5]  //改
        arr2[0] = 10
        console.log(arr2)
        
        arr2.splice(0, 2, 'b', 'a', 'c') //将开始下标的到个数的元素删除,然后再开始下标处增加后面的元素
        console.log(arr2)
    </script>
    

    09-对象

    
    <script type="text/javascript">
        /*
        js中没有python中的类,只有对象和构造方法
        
        1.对象的字面量
        {属性名:属性值, 属性名:属性值......}
        
        2.使用对象属性
            对象[属性名]
            对象.属性
        */
        
        p1 = {
            //对象属性
            name:'小明',
            age:18,
            tel:'213213',
            //对象方法
            eat:function(){
                console.log('吃饭')
            }
        }
        
        console.log(p1['name'])
        console.log(p1.age)
        p1.eat()
        
        
        /*
        3.构造方法(有点类似python中的类)
        function 名字(参数列表){
            this.属性1 = 属性值1
            this.属性2 = 属性值2
            
            return this
        }
        
        这儿的this类似于python中的self,表示当前对象
        */
        
        function Person(name, age, tel){
            //属性
            this.name = name
            this.age = age
            this.tel = tel
            //方法
            this.eat = function(food){
                console.log(this.name + '再吃' + food)
                
            }       
            return this
        }
        
        p1 = Person('小明', 18, 1800000000)
        console.log(p1.name, p1.age, p1.tel)
        p1.eat('🍎')
        
        //声明一个狗的对象对应的构造方法,颜色 年龄 品种,方法 吃  叫
        
        function Dog(name, color, age, kind){
            this.name = name
            this.color = color
            this.age = age
            this.kind = kind
            
            this.eat = function(food){
                console.log(this.name + '在啃' + food)
            }
            this.bark = function(){
                console.log('汪汪汪')
            }
            return this
        }
        
        d1 = Dog('旺财', '红色', 1, '中华田园犬')
        d1.bark()
        d1.eat('骨头')
        
        
    </script>
    

    相关文章

      网友评论

          本文标题:2018-11-05 Day05 js基础语法

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