美文网首页
2018-11-02day05JS基础

2018-11-02day05JS基础

作者: PythonLi | 来源:发表于2018-11-05 19:12 被阅读0次

    1.JS基础语法

    //1.注释,单行
    /*多行注释
    *多行注释
    /
    //2.标识符
    //js标识符就是用来命名的(给变量命名,函数命名,对象命名)
    //js中要求标识符是字母数字下划线外加$组成,数字还是不能开头
    //js中大小写敏感
    var abc = 100
    console.log(abc)
    // console.log 在控制台打印括号中的内容,和print一样
    //3.常用的数据类型
    /

    a.数字类型(Number)、布尔(Boolean)、字符串类型(String)、数组Array()、对象Object(),函数founction()
    数字类型(Number)---包含所有的数字,整数和小数 ,支持科学计数法,不支持复数

        100,13.5,-99
        console.log(4e2)
        //布尔.
        true
        false
        //字符串(String)双引号或者单引号都可以
        'abc'
        "abc"
        //数组(Array),相当于python的列表
        var p2=[2,43]
        console.log(p2)
        //(object):python中对象和字典的结合,不一样的是这里的name,age是对象,值是属性
    
        var p1= {
            name:'小明',
            age:99          
        }
        console.log(p1)
        //founction(函数):相当于python中的函数
        function hanshu1(){
            console.log('我是函数')
        }
            hanshu1()
        /*
        b.typeof(数据)- 查看数据类型
        
        c. new 类型名(数据)--将数据转换成指定的类型
        
        d.常用的特殊值underfined(相当于python中的none) null(一般用来清空变量)
        */
        
        //4.格式 :js没有缩进的要求
    

    2.JS中的变量

    js变量
    语法:
    var 变量名
    变量名 = 值

    说明 :
    var -是js关键字,声明变量的时候可以要var,也可以不用,但如果不要var变量就必须赋值,否则报错。
    如果写了var变量可以不赋值,会返回underfined

    变量名--标识符,不能是关键字。驼峰式命名规范 除了首单词首字母多个单词命名首字母大写

    //声明变量
        var name1 = '小明'
        var name2
        name3 = '小花'
        
        //同时声明多个变量
        var age,sex='男',score=100
        console.log(sex,age,score)
        
        //变量中的值:可以赋任何其他类型的值。字符串,数字等等....
        age,name = '老年人','小花'
        console.log(age,name)
    

    3.运算符

    //js支持:数学运算符,比较运算符,逻辑运算符,赋值运算符,位运算符
        //1.数学运算符:+,-,*,%,++,--,**  -->不支持整除// 
        //++ (自加1),--(自减1)
        //变量++,变量--,++变量,--变量(变量必须要有值)符号在前在后都一样
        //注意赋值的时候++和--写在变量的前面和变量的后面对应的效果不一样
    
        var number = 10
        number++
        ++number
        --number
        console.log(number)
    
        //2.比较运算符:>,<,==,!=,>=,<=,===,!==,<==,>==
        //比较运算的返回值都是Boolean
        // ==(相等)----判断值是否相等
        //===(完全相等)----判断值和类型是否相等
        console.log(5==5)//T
        console.log(5=='5')//T
        
        console.log(5===5)  //T
        console.log(5==='5')//F
    
        //3.逻辑运算符:&&(与),||(或),!(非)
        //运算规则和python中的and、or、not一模一样
        
        //4.赋值运算符: = ,+= , -=  ,*= ,/= ,%=
        //和python一样
        
        //5.位运算符:&与 , |或 , ^异或 , ~取反,>>,<<
        //和python一样
        
        //6.符合运算:数学>比较>逻辑>赋值
        //可以通过加()来改变运算顺序
    

    4.分之结构

    JS中的分之结构有两种,分别是if结构和switch结构
    1.if语句
    结构:
    if(条件语句):{
    代码段1
    }
    说明:
    if--关键字
    (){}----固定写法
    执行过程:
    判断条件语句是否为true,为true就执行大括号{}中的内容。不管缩进问题。

    b.if-else结构
    if(条件1){
    代码段1
    }else{
    代码段2}
    和python中的执行过程一样
    c.else if 结构和python中的elif节后一样
    if(条件1){
    代码段1
    }else if(条件2){
    }else if(条件3){
    }else{
    }
    2.switch语句
    switch(变量或者有值的表达式){
    case 值1:{代码段1}
    case 值2:{代码段2}
    case 值3:{代码段3}
    case 值4:{代码段4}
    ...
    default:{代码段5}
    }
    执行过程:先计算表达式的值,然后从上往下一一和case后面的值进行比较,找到第一个和表达式的值相等的case的值
    然后将执行后面所有case的代码段,直到执行完或者遇到break为止。
    如果没有值和表达式的值一样,就执行default后面的代码段

     num =10
        switch(num){
            case 1:console.log('1')
            case 2:console.log('2')
            case 3:console.log('3')
            case 10:console.log('正确')
            case 11:console.log('我是11')
            break
            
            default:console.log('我是default')
        }
        //练习:输入0-6输出1-7
        
        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('周日')            
        }
    

    5.循环结构

    for in 结构和python中的循环结构一样,不过这里的for in取出来的是序列元素的下标,如果是对象取出来的则是对象的key(属性名)
    结构:
    for 变量 in 序列{
    循环体
    }

    for (x in 'abc'){
            console.log('abc'[x])
        }
        取出来的x是下标,在通过下标取 出来元素
    

    b. C语言的for循环结构
    for(表达式1;表达式2条件语句;表达式3){
    循环体
    }
    直到思想:语句块之间要用分号隔开!语句块1里面写循环开始前的准备工作,例如声明变量,语句块1可以省略也可以设置多个值用逗号隔开。语句块2里面写执行循环体的条件。用来控制执行循环体的次数。语句块3用来改变初始变量的值,改变循环次数
    执行过程:
    先进入语句块1,判断条件2是否为true,如果为true就执行循环体,执行完成后进入语句块3,执行完语句块3后在判断2是否为true,如果为true就继续执行循环体,再进入3...以此类推直到2位false。循环就结束~

    c. while循环和python中的while循环一样
    结构:
    while(条件){
    循环体}
    d. do while循环结构--->先执行一次循环体,在判断条件是否为true,为true就继续执行,直到false为止,至少能执行一次循环体
    do{
    循环体
    }while(条件)
    3.js中的break和continue和python中一样

    6.函数

    函数还是分为声明和调用,声明的时候不会执行函数体,调用的时候才会执行函数体
    1.函数的声明,和python中一样
    function 函数名(参数列表){
    函数体
    return 返回值
    }
    说明:
    function是声明函数的关键字,
    函数名 --驼峰式命名,见名知意
    参数列表--如果没有设置默认值,相当于默认值为undefined
    返回值--return或者undefined(none)

    b.以声明变量的方式声明函数 这种相当于把函数名字放在前面。函数名 =。。。
    函数名 = function (参数列表){
    函数体
    return 返回值
    }

    function sum(m,n){
            return m+n
        }
        console.log(sum(2,3))
    

    调用:函数名(实参列表)
    调用的时候参数少传多传不会报错,但还是保证每个都有就可以了。
    只能通过位置参数传参,关键字参数无效,还是按照位置传参
    js中不支持不定长参数

    7.字符串

    由单引号或者双引号括起来的
    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])
    

    2.相关运算符
    + - 将两个字符串拼接在一起产生一个新的字符串
    (注意如果是一个字符串加上其他的数据,会先将其他数据转换成字符串再相加)
    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 -> not a number
    //  console.log(10/0)   // Infinity -> 无穷大
        console.log('abc' > 'abaaaa')
    

    js的正则表达式写在//两个斜杠之间。

    8.数组

    数组就是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)
    

    9.对象

    //js中没有python的类,只有对象和构造方法
    /*1.对象的字面量
    对象名 = {属性名:属性值, 属性名2: 属性值2...}
    3.构造方法 - 用来创建对象的
    function 类名(参数列表){
    this.属性1 = 属性值1
    this.属性2 = 属性值2
    ...

    return this //这句话必须写
    }
    这儿的this类似python中的self,表示当前对象
    这儿的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('面包')
        ~~~

    相关文章

      网友评论

          本文标题:2018-11-02day05JS基础

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