美文网首页
2018-11-02day5JavaScript基础语法

2018-11-02day5JavaScript基础语法

作者: MW演员 | 来源:发表于2018-11-02 19:15 被阅读0次

一、认识JavaScript

1、js是Javascript的缩写,是一门专门用来处理页面中的行为的脚本语言,也是web标准中的行为标准。
注意:JavaScript和Java没有任何关系
2、在哪里写JavaScript代码
  • Window.alter() :弹出一个对话框
  • a、内联的js:写在标签事件相关的属性,例如:onclick属性,其属性值就是js代码
  • b、内部的js:写在script标签中,script标签理论上可以放在HTML文件的任意位置,但是一般放在head或body中
  • c、外部的js:写在外部的一个js文件中,后缀是.js的文件,然后通过设置script标签的src属性来导入js文件

<script type="text/javascript" src=""></script>

3、js的功能
  • a、js可以修改标签中的内容
  • b、可以修改标签的样式
  • c、可以通过js插入HTML代码
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <script type="text/javascript" src="js/index.js">
        </script>
        
    </head>
    <body>
        
    </body>
</html>

二、js基础语法

<script type="text/javascript">
    // 1. 注释
    //单行注释
    /*多行注释*/
    
    // 2. 标识符
    // 标识符就是用来命名的
    // js中要求标识符是由字符 数字 下划线和$组成,数字不能开头
    
    var abc = 10
    console.log(abc) //在控制台打印内容,这也是js的打印语句
    
    // 注意:在js中大小写敏感
    
    // 3. 常用数据类型
        // Number (数字类型):包含了所有的数字(整数、小数、正负都行),支持科学计数法, 不支持虚数(就是复数的j)
        // Boolean(布尔):true或false
        // String(字符串):由单引号或者双引号括起来的就是字符串
        // Array(数组):数组相当于python中的列表,可以是多种数据类型的的元素
        // Object(对象):是python中字典和对象的结合
         如:
        {
            name:'张三',
            age: 18,
            sex:'男'
        }
        // function(函数):相当于python中的函数
        function fun1(){
            console.log('函数')
        }
        
        fun1()
    
        // 4. 常用函数
        // 1. typeof(数据):获取数据对应的类型
        console.log(typeof(100))
        // 2. 数据类型转换
        // new 类型名(数据) : 将数据转换成对应的类型
        var a = 3
        console.log(new Boolean(a))
    
        // 5、常使用的特殊值
        // undefined, null
        // undefined:未定义,相当于python中的none
        // null:用于清空数据,一般用来清空变量
        
        // 注意:js没有严格的缩进要求
        
        // 6. 声明变量
        // 语法:var 变量名
        // a = 10 这样也行,省略var变量名必须赋值,不省略的时候变量名后可以不赋值,但值为undefined
        // 说明:var是js的一个关键字
        var a = 'abc'
        name = '小明'
        console.log(a)
        console.log(name)
        // 变量名不能是关键字,遵循驼峰式命名userName
        
        // 同时声明多个变量
        var a, b, c, d
        var a = 10, b = 29, c = 90
        e = 3, g = 'pk'
        
        // 7.变量赋值:变量类型可以是其他任何类型的值
        age = 10
        age = 'kkkk'
        console.log(age)
        
        // x, y = 10, 20 :不支持这种方式
        
</script>

三、运算符

<script type="text/javascript">
    
    // 1. js支持:数学运算符 比较运算符 逻辑运算符 赋值运算符 位运算符
    // 数学运算符:+ - * / % **(js7) ++ -- js不支持整除运算(//)
    // ++:自加1    ++变量 或者 变量++ (变量必须有值)
    // --:自减1     --变量 或者 变量--
    // 注意:下面两种用法
    var num1 = 10, num2
    num2 = num1++
    // 先用在加
    // num2 = num1
    // num1 += 1
    console.log(num1, num2)
    
    var num11 = 10, num12
    num12 = ++num11
    // 先加在用
    num11 = num11 + 1
    num12 = num11
    console.log(num11, num12)
    
    // 2. 比较运算符(> < == != >= <= === !== >== <==)
    // == : 判断值是否相等
    // === :完全相等, 判断值和类型是否相等
    console.log(5 == 5)  //true
    console.log(5 == '5')  //true
    
    console.log(5 === 5)  //true
    console.log(5 === '5')  //false
    
    // 3. 逻辑运算符: &&(与) ||(或) !(非)
    // 运算规则和python中的逻辑运算一样
    
    // 4. 赋值运算符: = += -= *= /= %=
    
    // 5. 位运算: &(按位与) |(按位或) ^(异或) ~(取反) >>(右移) <<(左移)
    
    // 6. 运算优先级
    // 数学运算 > 比较运算 > 逻辑运算 > 赋值运算
    // 可以通过括号来改变运算顺序
    
</script>

四、分支结构

<script type="text/javascript">
    
    // 1. js中的结构
    js中分支结构有两个if和switch语句
    if语句结构:
    if(条件语句1){
        语句块1
    }

    // 还有:if-else和 if(条件)-else if(条件1).....-else
    if(){
        
    }else if(){
        
    }else if(){
        
    }else{
        
    }

    // 2. switch分支结构语句
    switch(变量或者有值得表达式){
        case value1: {代码段1}
        case value2: {代码段2},
        .....
        default:{代码段n}
        
    }

    // 执行过程:先计算表达式的值,然后从上往下一一和case比较,找到第一个与表达式相等的case,然后将这个case作为入口,依次执行后面的代码段直到执行完或者遇到break为止, 但是当没有任何case值和表达式的值一样就直接执行default后面的代码段.default可以省略
    // 注意:case后面必须是一个具体的值
    
    num = 3
    switch (num){
        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; //可以省
        default:
            console.log('未找到匹配对象')
            break;
    }

    switch (){
        case value1:
            break;
        case value2:
        case value3:
        case value4:
            语句代码
            
        ......
        default:
            break;
    }
</script>

五、循环结构

<script type="text/javascript">
    
    // 1. for循环
    for - in 和python中的执行过程一样
    for (变量 in 序列){
        循环体
    }
    // 注意:for-in循环遍历字符串、数组、对象时取出的是元素的下标
    // 序列:字符串/数组/对象

    arr = ['aa', 'ffd', 'jfd']
    
    for (i in arr) {
        console.log(i, arr[i])
    }

    // 与c语言的for循环一样
    for(语句1; 表达式2; 语句3){
        循环体
    }
    // 语句1用于写循环开始时的准备工作
    // 表达式2:控制循环次数
    // 语句3:改变循环次数
    
    // var sum = 0
    for(i = 1, sum = 0; i <= 100; i++){
        sum += i
    }
    console.log(sum)
    
    // 2. while循环 和python的循环一样
    while(条件){
        循环体
    }

    // 3. do....while(条件);  
    do{
        循环体
    }while();
    
    // 过程:先执行循环体,在判断条件,直到条件为false才结束循环
    
    j = 0
    do{
        j++
        console.log(j)
        
    }while(j < 2);

    // js中的关键字就是break和continue和python中的差不多

</script>

六、js内置函数

<script type="text/javascript">
    
    // 1. 函数分为声明和调用,声明的时候不会执行函数体,只有调用时 才会执行函数体
    
    声明函数:
        function 函数名(参数列表){
            函数体
            return 返回值
        }

    // 说明:function是声明函数的关键字,遵循驼峰式命名法,见名知义
    function sum(a, b){
        return a + b
    }
    console.log(sum(23, 43))
    
    // 注意:函数在调用时如果不传参,系统会给一个默认值undefined,所以在js中如果没有给函数形参参数传参,不会报错,但是注意调用时参数可以传多个,
    // js中也支持默认参数, 但不支持关键字参数,只能通过位置参数传参, js中不支持不定长参数(因为js不支持元祖)
    // js中如果函数没有返回值,则返回一个undefined,类似于python中的none
    
    以声明变量的形式声明函数
    函数名 = function(参数列表){
        函数体
        return 返回值
    }
    
    sum = function(num1, num2){
        return num1 * num2
    }
    
    console.log(sum(5, 5))
    
</script>

七、字符串

<script type="text/javascript">
    // 1. 字符串:有单引号或双引号括起来的就是字符串
    
    //转移字符和python一样
    
    // 获取字符串长度字符串.length, 即字符个数
    console.log('123'.length)
    
    // 获取单个字符 字符串[下标] 下标只能是0~长度-1(-负数无效,超出范围不会报错,但会显示一个undefined)
    
    console.log('123'[5])
    
    // 注意:js中不支持切片操作
    
    // 字符串支持的运算符
    console.log('123' + 'dfd')
    console.log('123' + 74)
    console.log('123' + true)
    console.log('123' + ['fdf', 123, 'fdd'])
    // 支持加运算(字符串拼接),产生一个新的字符串
    // js支持不同类型的数据相加, 因为js会将其他类型的数据转换成字符串再相加
    console.log(new String(['fdf', 123, 'fdd']))
    
    // 乘操作
    console.log('abc' * 3)
    
    // 注意:NaN是数字类型中的一个特殊值, 表示一个不存在的数字
    // Infinity表示无穷大
    
    // 比较运算(> < == != === !==)
    // js采用Unicode编码
    // 字符串比较大小,是逐个比较字符编码值大小
    
    // 相关方法
    // match(正则表达式)
    str1 = 'fkdkHej876f78dfkjh34i8r3njk0-of0[]fdpor3o3'
    
    re = str1.match(/[a-z]+/)
    
    console.log(re[0])
    
    // replace(正则表达式,替换子串)
    
    re1 = str1.replace(/\d+/m, '*')
    
    console.log(re1)
    
</script>

八、数组

<script type="text/javascript">
    // 1. 数组就是python中的列表
    
    // 获取数字元素
    // 下标获取
    // 数组[下标]  下标范围:0~长度-1
    // 里面的元素可以是任意类型的数据
    console.log(['a', 'b', 'f'][2])
    
    console.log(['a', 'b', 'f'].length) //获取数组的长度
    // 注意:JavaScript不支持切片,但是提供下面的方法来切片
    
    // 数组.slice(开始下标, 结束下标) 切片操作,含头不含尾
    console.log(['a', 'b', 'f', 'ffd', '23'].slice(2, 3))
    
    
    // 增加元素
    // JavaScript中就只有一个添加操作
    // 数组.push(元素)  添加元素
    console.log(['a', 'b', 'f'].push('c'))
    
    // 数组.pop() 删除最后一个元素
    console.log(['a', 'b', 'f'].pop())
    
    // 数组.splice(开始删除的下标, 删除个数) 从数组指定的下标开始删除指定个数元素
    console.log(['a', 'b', 'f', 'ffd', '23'].splice(2, 3))
    
    
    // 修改元素
    
    // 数组[下标] = 新值
    arr1 = ['a', 'b', 'f', 'ffd', '23']
    arr1[0] = 'abc'
    console.log(arr1)
    
    // 数组.splice(开始下标, 个数, 多个其他参数) 用其他参数替换开始下标开始后的指定个数的元素
    arr1 = ['a', 'b', 'f', 'ffd', '23']
    arr1.splice(1, 2, '123')
    console.log(arr1)
    
</script>

九、对象

<script type="text/javascript">
    // 1. JavaScript中没有python中的类, 只有对象和构造方法
    // 2、对象字面量
    {属性1:值1, 属性2:值2.....}
    创建对象
    p1 = {
        // 对象属性
        name : 'zhangsan',
        age : 20,
        tel : '12323',
        
        // 对象方法
        eat : function(){
            console.log('吃饭')
        }
    }

    // 使用对象属性
    console.log(p1['name'])
    console.log(p1.name)
    
    // 修改属性值
    p1.name = 'lisi'
    console.log(p1['name'])
    
    // 调用对象方法
    p1.eat()
    
    // 声明构造方法
    // 构造方法中的this就相当于python中的self,指向一个对象
    function 类名(参数列表){
        this.属性1 = 值1
        this.属性2 = 值2
        ......
    
        return this    //固定写法,必须这么写
    }
    
    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('张三', 12, '2323232')
    console.log(p1.name)
    p1.eat('饭')
    


    // 练习:实现以dog类
    
    function Dog(color, age, kind){
        // 属性
        this.color = color
        this.age = age
        this.kind = kind
        
        // 方法
        this.eat = function(food){
            console.log('狗在吃' + food)
        }
        
        this.hang = function(){
            console.log('狗在叫')
        }
        
        return this
    }
    
    dog1 = Dog('黄色', 2, '本地的')
    console.log(dog1.color, dog1.age, dog1.kind)
    dog1.eat('饭')
    dog1.hang()

</script>

相关文章

  • 2018-11-02day5JavaScript基础语法

    一、认识JavaScript 1、js是Javascript的缩写,是一门专门用来处理页面中的行为的脚本语言,也是...

  • 【Android】知识点汇总,坚持原创ing

    Android基础 Java基础 Java基础——Java内存模型和垃圾回收机制 语法基础 语法基础——C语法基础...

  • java

    语法基础1.1 java初体验(语法基础)1.2 变量和常量(语法基础)1.2 变量和常量(语法基础)1.4 流程...

  • 软帝学院:80道java基础部分面试题(四)

    Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集...

  • 快速上⼿ Kotlin

    快速上⼿ Kotlin 基础语法 函数基础语法 与 Java 代码互调 Java 与 Kotlin 交互的语法变化...

  • Java面试题知识点

    1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...

  • Java初级面试题

    1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...

  • 高考英语基础语法单句语法填空

    高考英语基础语法单句语法填空

  • Go语言基础语法--注释、基础结构2

    章节 GO语言基础语法--注释、基础结构(重要) 1.GO语言基础语法---注释、基础结构 基础结构注意事项 源文...

  • Swift5.1——前言

    主要是针对Swift5.1,基础语法,和内部剖析。 基础语法 基础语法 流程控制 函数 枚举 可选项 为什么选择S...

网友评论

      本文标题:2018-11-02day5JavaScript基础语法

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