Day 5-note_js

1.js基础
  1. 注释
    单行注释:在注释文字前加//
/*
多行注释1
多行注释2
*/
  1. 标识符
    由字母、数字、下划线和符组成,数字不能开头(注意:不轻易使用,在JQ有特殊的意义)
  2. 关键字
    for、if、var、while、func,true、false等
  3. 数据类型
    1)类型
    类型名首字母都是大写的
    Number(数字)、String(字符串)、Boolean(布尔)、Array(数组)、Object(对象)
    a.Number -- 包含所有的数字(包含整数和小数),例如:100、0.32、-34、2e5
    b.String -- 用双引号或者单引号引起来的字符集,支持转义字符和编码字符
    c.Boolean -- 只有true和false两个值,分别代表真和假
    d.Array -- 相当于python中的列表,用中括号括起来的多个元素。[12, 'abc', true, [1, 2]]
    e.Object -- 类似python中字典和对象的结合
    2)typeof函数
    typeof(数据) -- 获取数据对应的类型
    3)类型名(数据) -- 类型转换
    parseFloat(数据) -- 将数据转换成浮点数
    parseInt(数据) -- 将数据转换成整数
  4. 语句
    一行一般情况下只写一条语句,语句结束后可以有分号也可以没有;如果一行有多条语句,语句之间必须有分号
    缩进无要求
    大小写敏感
2.变量
  1. 声明变量的语法
    1)语法1:
    变量 = 值
    2)语法2:
    var 变量名 / var 变量名 = 值
    3)说明:
    变量名 -- 标识符、不能是关键字;采用驼峰式命名
    声明变量如果没有给变量赋值(语法2才支持),变量的默认值是underfined
3.运算符

js支持数学运算符、比较运算符、逻辑运算符、赋值运算符、(位运算)

  1. 数学运算符:+,-,,/,%,++,--
    +,-,
    ,/,%和python一样
    自加1运算:变量++,++变量
    2)自减1运算:
    变量--,--变量
    3)自加自减的坑
  2. 比较运算符:>,<,==,!=,<=,>=,===,!==
    比较大小和python一样
    ==:判断值是否相等(不管类型)
    ===:同时判断值和类型是否相等(python中的==)
    支持表示范围的连续写法
  3. 逻辑运算符:&&(逻辑与运算),||(逻辑或运算)、!(逻辑非运算)
    和python中的and,or,not功能一样
    4.赋值运算符:=,+=,-=,*=,/=,%=
    和python一样
    5.复合运算和python一样
    6.三目运算符 - 表达式?值1:值2
    判断表达式的值是否为true,如果为true整个运算的结果是值1,否则是值2
4.分支结构

js有if和switch两种分支结构

  1. if分支
    1)结构1
if(条件语句){
    满足条件执行的代码块
}

python写法:

if 条件语句:
    满足条件执行的代码块

2)结构2: if else
js写法:

if(条件语句){
     满足条件执行的代码块
}else{
     不满足条件执行的代码块
}

3)结构3:if-elif...else
js写法:

if(条件语句){
    满足条件1执行的代码块
}else if(条件语句){
    满足条件2执行的代码块
}
...
else{
    不满足条件执行的代码块
 }
  1. switch
    1)语法:
     switch(表达式){
        case 值1:
            代码块1
        case 值2:
            代码块2
        case 值3:
            代码块3
        ...
        default:
            代码块N
     }

2)执行过程

先计算表达式的结果,然后让这个结果按顺序从前往后和每个case后面的值进行比较,
如果哪个case后面的值和表达式的结果相等,就将这个case作为入口,
依次后面每个case对应的代码块,
直到执行完最后一个代码块或者遇到break为止如果每个case后面的值都和表达式的结果不相等,
直接执行default后面的代码块(default可以不写)
5.循环结构

js中循环分为for循环和while循环

  1. for循环
    1)or-in循环
for(变量 in 序列){
     循环体
 }
让变量依次获取序列中元素的下标(下标/属性名),一个一个取,取完为止,每取一个执行一次循环

2)c中的for循环

for(表达式1;表达式2;表达式3){
     循环体
}
执行过程:先执行表达式1,再判断表达式2的值是否为true;如果为true执行循环体,执行完循环体再执行表达式3;
     再判断表达式2是否为true,如果为true执行循环体,执行完循环体再执行表达式3;
     再判断表达式2是否为true,如果为true执行循环体,执行完循环体再执行表达式3;
     以此类推,直到表达式2的结果为false,循环结束

  1. while循环
    1)while循环
     while(条件语句){
        循环体
     }

2)do-while

     do{
        循环体
     }while(条件语句)
执行过程:执行循环体,判断条件语句是否为true,为true再执行循环体
         执行完循环体又判断条件语句是否为true
         以此类推,直到条件语句为false循环结束
6.函数
  1. 语法
    function  函数名(参数列表){
        函数体
    }

    

  1. 匿名函数
    function(参数列表){
        函数体
    }
<script type="text/javascript">
    //2.匿名函数
    func1 = function(x, y){
        console.log(x, y, x + y)
        return x+y
    }
    func1(10,20)
    a = function(x, y){
        console.log(x, y, x + y)
        return x+y
    }(1,2)
    console.log(a)
</script>
7.字符串
<script type="text/javascript">
    //1.字符串
    //单引号或者双引号引起来的字符集,支持转义字符和编码字符
    str1 = "hello js"
    str2 = 'hello\t\'word\''
    console.log(str1,str2)
    
    //2.获取字符
    //字符串[下标]
    //注意:1)下标只有正值,没有负的 2)下标越界不会报错,获取到的值是undefined
    console.log(str1[0])
    
    //js中不支持[]对应的切片语法,但是有相应的方法
    
    //3.相关操作
    //1)加法运算
    //支持字符串和任何数据相加,如果另外一个数据不是字符串就先转换成字符串再进行拼接操作
    console.log('abc' + 'hello')
    console.log('abc' + 123)
    
    //2)比较运算:和python一样
    
    //3)字符串长度:字符串。length
    console.log(str2.length)
    
    //4.相关方法
    str2 = new String('hello')
    console.log(str2)
    //1)字符串.charCodeAt(下标)
    console.log(str2.charCodeAt(0))
    
    //2)字符串.match(正则表达式)
    re = /\d{3}[a-z]{3}/
    console.log('234abc---'.match(re))
    
    //3)字符串.slice()
    console.log(str2.slice(0,3))
    'abc123'.sort(key)
</script>
8.数组
<script type="text/javascript">
    //js中的数组相当于python中的列表
    //1.查
    arr1 = [10, 2, 30, 5, 32, 4]
    //1)获取单个元素:数组[下标]
    console.log(arr1[3])    //5
    console.log(arr1[10])  // undefined
    
    //2)遍历
    for(index in arr1){
        console.log('index:'+index, arr1[index])
    }
    //2.增
    console.log('===============添加===================')
    //1)数组.push(元素)  -  在数组的最后添加元素
    arr1.push(100)
    console.log(arr1)
    
    
    //2)数组.splice(下标,0,元素) - 在指定的下标前插入指定的元素
    //数组.splice(下标,0,元素1,元素2,....) - 在指定的下标签插入多个指定的元素
    arr1 = [1, 2, 3, 4, 5, 6]
    arr1.splice(2,0,4,5)
    console.log(arr1)
    //3.删
    console.log('===============删除===================')
    //数组.pop()  -  取出数组中的最后一个元素
    arr1.pop()
    console.log(arr1)
    //数组.shift() - 取出数组中第一个元素
    arr1.shift()
    console.log(arr1)
    
    
    arr2 = [12, 3, 53, 2, 5, 23, 56]
    arr2.splice(1,1)
    console.log(arr2)
    
    
    //数组.splice(开始删除的下标,删除的个数)
    
    //4.改
    //数组[下标] = 值
    arr1[0] = 200
    console.log(arr1)
    
    //5.排序
    //sort(函数对象)
    //函数对象 - 函数,有两个参数(代表数组中的两个元素),返回值代表排序方法
    console.log('===============排序===================')
    nums = [34, 23, 54, 4, 7, 41, 34, 56]
    //数组元素从大到小排序
    new_nums = nums.sort(function(a, b){return b-a})
    console.log(new_nums)
    //数组元素从小到大排序
    new_nums = nums.sort(function(a, b){return a-b})
    console.log(new_nums)
    
    students = [
        {name:'小明', age:18, score:90},
        {name:'小花', age:17, score:76},
        {name:'小红', age:14, score:56},
        {name:'小李', age:19, score:89}
    ]
    //将数组元素按照元素的age属性从小到大排序
//  students.sort(function(a, b){return a.age - b.age})
//  console.log(students)
    
    //将数组元素按照元素的score属性从大到小排序
    students.sort(function(a, b){return b.score - a.score})
    console.log(students)
</script>
9.对象
<script type="text/javascript">
    //1.什么是对象
    //和python类的对象一样,主要由对象属性和对象方法组成
    //2.创建对象
    //1)对象值
    obj1 = {
        name:'晓晓',
        age:19,
        gender:'女'
    }
    console.log(typeof(obj1), obj1)
    //2)new 类型()
    obj2 = new Object()
    console.log(typeof(obj2), obj2)
    
    //3.构造方法  --  一个用来创建对象的函数
    //1)函数名相当于类名,首字母要大写
    //2)函数的功能是通过this添加对象属性和对象方法(这儿的this就相当于self)
    function Person(){
        //添加对象属性
        this.name = name 
        this.age = age
        this.gender = gender 
        //添加对象方法
        this.eat = function(food){
            console.log(this.name+'在吃'+food)
        }
        return this
    }
    
    
    //4.使用构造方法创建对象
    //对象 = new 构造方法()
    p1 = new Person('小花', 30, '女')
    p2 = new Person('小明', 12)
    
    //5.通过对象使用对象属性和调用对象方法
    p1.name = '小花花'
    console.log(p1.name, p1['name'])
    p1.eat('面条')
    p1.eat('面包')
    //6.添加/修改属性
    //对象.属性 = 值
</script>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容