day5-js基础语法

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>

运行结果可自行测试

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容