javascript 01: 语法基础()

概述

  • 浏览器上的脚本语言:不需要编译,浏览器直接解释执行,目标程序(可以执行的程序)可以以普通文本的形式保存
  • 事件驱动的脚本语言
  • 遵循ECMA-Script规范

html与javascript

  • 在html中嵌入javascript的3种方式

    代码块

    行内代码

    外部js文件引入

  • 代码块
  • 行内代码
  • 外部js文件引入

javascript 基础知识

  • 事件和事件句柄的区别
    例如:click与onclick的区别
  • 体会html文档树的概念
  • js脚本块

    会按照自上而下的循序逐行执行(注意:定义的函数不会执行)
    脚本块的位置随意
    注释方式2种

  • 会按照自上而下的循序逐行执行(注意:定义的函数不会执行)
  • 脚本块的位置随意
  • 注释方式2种
  • 标识符

    命名规范
    命名规则:数字字母下划线美元符号,不能以数字开始,不能和关键字冲突,区分大小写,理论没有长度限制
    命名规范和命名规则的区别

  • 命名规范
  • 命名规则:数字字母下划线美元符号,不能以数字开始,不能和关键字冲突,区分大小写,理论没有长度限制
  • 命名规范和命名规则的区别
  • 变量

    javascript是一种弱类型语言:变量声名的时候,类型没有限制死

    var xxx = xxx
    没有手动赋值的时候系统默认赋值undefined
    变量压根没有声明:报错

    java是一种强类型语言:变量声明的时候,类型已经限制死了

    byte short int long float double boolean char
    1 2 4 8 4 8 1 2

  • javascript是一种弱类型语言:变量声名的时候,类型没有限制死

    var xxx = xxx
    没有手动赋值的时候系统默认赋值undefined
    变量压根没有声明:报错

  • var xxx = xxx
  • 没有手动赋值的时候系统默认赋值undefined
  • 变量压根没有声明:报错
  • java是一种强类型语言:变量声明的时候,类型已经限制死了

    byte short int long float double boolean char
    1 2 4 8 4 8 1 2

  • byte short int long float double boolean char
    1 2 4 8 4 8 1 2

javascript 中的函数

  • 格式
    //方式1
    function 函数名(形式参数列表){
    函数体
    }

    //方式2
    函数名 = function (形式参数列表){
    函数体
    }

    //不调用不执行

  • js函数的重载
    function sum(a, b){
    alert(a + b)
    }
    //相当于写了3个函数

  • 函数名不能相同

    重名的话,后定义的会将前面定义的函数覆盖掉
    区分函数只靠函数名

  • 重名的话,后定义的会将前面定义的函数覆盖掉
  • 区分函数只靠函数名
  • 变量范围

    全局变量:函数体外声明

    浏览器打开时声明,浏览器关闭时销毁
    不写var 声明的是全局变量

    局部变量

    在函数体内声明(包括函数的形参)

    访问原则:就近访问

  • 全局变量:函数体外声明

    浏览器打开时声明,浏览器关闭时销毁
    不写var 声明的是全局变量

  • 浏览器打开时声明,浏览器关闭时销毁
  • 不写var 声明的是全局变量
  • 局部变量

    在函数体内声明(包括函数的形参)

  • 在函数体内声明(包括函数的形参)
  • 访问原则:就近访问

javascript 数据类型

  • 变量没有数据类型,但是值有数据类型
  • js中的数据类型

    ES6规范之前有6种,ES6之后有7种(多了一个symbol类型)

    原始类型

    Undefined

    只有一个值:undefined

    Number

    普通值
    NaN(本来应该是数,结果却不是数)
    无穷大Infinity
    常用函数

    isNaN()
    parseInt()
    parseFloat()
    Math.ceil()

    String

    创建字符串对象

    var s = “abc”
    var s2 = new String(“abc”)

    String内置类继承自Object

    typeof s 和 typeof s2的区别

    小string
    大String
    两种string的属性和函数都是通用的

    常用函数

    indexof

    获取指定字符串在当前字符串第一次出现处的位置
    未出现过:-1

    replace:只替换第一个
    substr:startindex,length
    substring:startindex, endindex,且不包含右边界

    Boolean

    永远只有两个值:true or false
    Boolean():不是boolean类型的值转换成boolean类型的函数

    有 -> true
    无 -> false

    if后面会自动转换成boolean类型

    Null

    只有一个值null,属于”object”

    引用类型

    Object以及其子类

    创建类的方法
    //方式1
    function 类名(形参){

    }

    //方式2
    类名 = function(形参){

    }

    //看如何使用,是否使用new,看是当作方法使用,还是当作类来使用

    //js中类的定义实际上已经包含了java中定义一个类的全部信息(类名与构造方法名称相同 + 弱类型)

    创建对象的方法

    new 类名(参数列表)
    访问属性

    对象.xxx
    键值对的形式 对象[“xxx”]

    类中属性,实例方法,类方法的声明(注意如何让类方法真正生效)

    prototype属性:动态的获取属性和方法

  • ES6规范之前有6种,ES6之后有7种(多了一个symbol类型)
  • 原始类型

    Undefined

    只有一个值:undefined

    Number

    普通值
    NaN(本来应该是数,结果却不是数)
    无穷大Infinity
    常用函数

    isNaN()
    parseInt()
    parseFloat()
    Math.ceil()

    String

    创建字符串对象

    var s = “abc”
    var s2 = new String(“abc”)

    String内置类继承自Object

    typeof s 和 typeof s2的区别

    小string
    大String
    两种string的属性和函数都是通用的

    常用函数

    indexof

    获取指定字符串在当前字符串第一次出现处的位置
    未出现过:-1

    replace:只替换第一个
    substr:startindex,length
    substring:startindex, endindex,且不包含右边界

    Boolean

    永远只有两个值:true or false
    Boolean():不是boolean类型的值转换成boolean类型的函数

    有 -> true
    无 -> false

    if后面会自动转换成boolean类型

    Null

    只有一个值null,属于”object”

  • Undefined

    只有一个值:undefined

  • 只有一个值:undefined
  • Number

    普通值
    NaN(本来应该是数,结果却不是数)
    无穷大Infinity
    常用函数

    isNaN()
    parseInt()
    parseFloat()
    Math.ceil()

  • 普通值
  • NaN(本来应该是数,结果却不是数)
  • 无穷大Infinity
  • 常用函数

    isNaN()
    parseInt()
    parseFloat()
    Math.ceil()

  • isNaN()
  • parseInt()
  • parseFloat()
  • Math.ceil()
  • String

    创建字符串对象

    var s = “abc”
    var s2 = new String(“abc”)

    String内置类继承自Object

    typeof s 和 typeof s2的区别

    小string
    大String
    两种string的属性和函数都是通用的

    常用函数

    indexof

    获取指定字符串在当前字符串第一次出现处的位置
    未出现过:-1

    replace:只替换第一个
    substr:startindex,length
    substring:startindex, endindex,且不包含右边界

  • 创建字符串对象

    var s = “abc”
    var s2 = new String(“abc”)

    String内置类继承自Object

    typeof s 和 typeof s2的区别

    小string
    大String
    两种string的属性和函数都是通用的

  • var s = “abc”
  • var s2 = new String(“abc”)

    String内置类继承自Object

  • String内置类继承自Object
  • typeof s 和 typeof s2的区别

    小string
    大String
    两种string的属性和函数都是通用的

  • 小string
  • 大String
  • 两种string的属性和函数都是通用的
  • 常用函数

    indexof

    获取指定字符串在当前字符串第一次出现处的位置
    未出现过:-1

    replace:只替换第一个
    substr:startindex,length
    substring:startindex, endindex,且不包含右边界

  • indexof

    获取指定字符串在当前字符串第一次出现处的位置
    未出现过:-1

  • 获取指定字符串在当前字符串第一次出现处的位置
  • 未出现过:-1
  • replace:只替换第一个
  • substr:startindex,length
  • substring:startindex, endindex,且不包含右边界
  • Boolean

    永远只有两个值:true or false
    Boolean():不是boolean类型的值转换成boolean类型的函数

    有 -> true
    无 -> false

    if后面会自动转换成boolean类型

  • 永远只有两个值:true or false
  • Boolean():不是boolean类型的值转换成boolean类型的函数

    有 -> true
    无 -> false

  • 有 -> true
  • 无 -> false
  • if后面会自动转换成boolean类型
  • Null

    只有一个值null,属于”object”

  • 只有一个值null,属于”object”
  • 引用类型

    Object以及其子类

    创建类的方法
    //方式1
    function 类名(形参){

    }

    //方式2
    类名 = function(形参){

    }

    //看如何使用,是否使用new,看是当作方法使用,还是当作类来使用

    //js中类的定义实际上已经包含了java中定义一个类的全部信息(类名与构造方法名称相同 + 弱类型)

    创建对象的方法

    new 类名(参数列表)
    访问属性

    对象.xxx
    键值对的形式 对象[“xxx”]

    类中属性,实例方法,类方法的声明(注意如何让类方法真正生效)

    prototype属性:动态的获取属性和方法

  • Object以及其子类

    创建类的方法
    //方式1
    function 类名(形参){

    }

    //方式2
    类名 = function(形参){

    }

    //看如何使用,是否使用new,看是当作方法使用,还是当作类来使用

    //js中类的定义实际上已经包含了java中定义一个类的全部信息(类名与构造方法名称相同 + 弱类型)

    创建对象的方法

    new 类名(参数列表)
    访问属性

    对象.xxx
    键值对的形式 对象[“xxx”]

    类中属性,实例方法,类方法的声明(注意如何让类方法真正生效)

    prototype属性:动态的获取属性和方法

  • 创建类的方法
    //方式1
    function 类名(形参){

    }

    //方式2
    类名 = function(形参){

    }

    //看如何使用,是否使用new,看是当作方法使用,还是当作类来使用

    //js中类的定义实际上已经包含了java中定义一个类的全部信息(类名与构造方法名称相同 + 弱类型)

  • 创建对象的方法

    new 类名(参数列表)
    访问属性

    对象.xxx
    键值对的形式 对象[“xxx”]

  • new 类名(参数列表)
  • 访问属性

    对象.xxx
    键值对的形式 对象[“xxx”]

  • 对象.xxx
  • 键值对的形式 对象[“xxx”]
  • 类中属性,实例方法,类方法的声明(注意如何让类方法真正生效)
  • prototype属性:动态的获取属性和方法
  • typeof的结果为以下6个字符串,字符串全部小写,用于动态获取数据类型

    “undefined”
    “number”
    “string”
    “boolean”
    “object”
    “function”

    注意:

    null属于Nulll类型,但是null的typeof结果为”object”

  • “undefined”
  • “number”
  • “string”
  • “boolean”
  • “object”
  • “function”
  • null属于Nulll类型,但是null的typeof结果为”object”
  • null,NaN,undefined区别

    它们typeof的区别
    它们 == 的结果
    它们 === 的区别
    == 和 === 的区别

    == :值的效果是否等同
    === :值和类型

  • 它们typeof的区别
  • 它们 == 的结果
  • 它们 === 的区别
  • == 和 === 的区别

    == :值的效果是否等同
    === :值和类型

  • == :值的效果是否等同
  • === :值和类型
————————

概述

  • 浏览器上的脚本语言:不需要编译,浏览器直接解释执行,目标程序(可以执行的程序)可以以普通文本的形式保存
  • 事件驱动的脚本语言
  • 遵循ECMA-Script规范

html与javascript

  • 在html中嵌入javascript的3种方式

    代码块

    行内代码

    外部js文件引入

  • 代码块
  • 行内代码
  • 外部js文件引入

javascript 基础知识

  • 事件和事件句柄的区别
    例如:click与onclick的区别
  • 体会html文档树的概念
  • js脚本块

    会按照自上而下的循序逐行执行(注意:定义的函数不会执行)
    脚本块的位置随意
    注释方式2种

  • 会按照自上而下的循序逐行执行(注意:定义的函数不会执行)
  • 脚本块的位置随意
  • 注释方式2种
  • 标识符

    命名规范
    命名规则:数字字母下划线美元符号,不能以数字开始,不能和关键字冲突,区分大小写,理论没有长度限制
    命名规范和命名规则的区别

  • 命名规范
  • 命名规则:数字字母下划线美元符号,不能以数字开始,不能和关键字冲突,区分大小写,理论没有长度限制
  • 命名规范和命名规则的区别
  • 变量

    javascript是一种弱类型语言:变量声名的时候,类型没有限制死

    var xxx = xxx
    没有手动赋值的时候系统默认赋值undefined
    变量压根没有声明:报错

    java是一种强类型语言:变量声明的时候,类型已经限制死了

    byte short int long float double boolean char
    1 2 4 8 4 8 1 2

  • javascript是一种弱类型语言:变量声名的时候,类型没有限制死

    var xxx = xxx
    没有手动赋值的时候系统默认赋值undefined
    变量压根没有声明:报错

  • var xxx = xxx
  • 没有手动赋值的时候系统默认赋值undefined
  • 变量压根没有声明:报错
  • java是一种强类型语言:变量声明的时候,类型已经限制死了

    byte short int long float double boolean char
    1 2 4 8 4 8 1 2

  • byte short int long float double boolean char
    1 2 4 8 4 8 1 2

javascript 中的函数

  • 格式
    //方式1
    function 函数名(形式参数列表){
    函数体
    }

    //方式2
    函数名 = function (形式参数列表){
    函数体
    }

    //不调用不执行

  • js函数的重载
    function sum(a, b){
    alert(a + b)
    }
    //相当于写了3个函数

  • 函数名不能相同

    重名的话,后定义的会将前面定义的函数覆盖掉
    区分函数只靠函数名

  • 重名的话,后定义的会将前面定义的函数覆盖掉
  • 区分函数只靠函数名
  • 变量范围

    全局变量:函数体外声明

    浏览器打开时声明,浏览器关闭时销毁
    不写var 声明的是全局变量

    局部变量

    在函数体内声明(包括函数的形参)

    访问原则:就近访问

  • 全局变量:函数体外声明

    浏览器打开时声明,浏览器关闭时销毁
    不写var 声明的是全局变量

  • 浏览器打开时声明,浏览器关闭时销毁
  • 不写var 声明的是全局变量
  • 局部变量

    在函数体内声明(包括函数的形参)

  • 在函数体内声明(包括函数的形参)
  • 访问原则:就近访问

javascript 数据类型

  • 变量没有数据类型,但是值有数据类型
  • js中的数据类型

    ES6规范之前有6种,ES6之后有7种(多了一个symbol类型)

    原始类型

    Undefined

    只有一个值:undefined

    Number

    普通值
    NaN(本来应该是数,结果却不是数)
    无穷大Infinity
    常用函数

    isNaN()
    parseInt()
    parseFloat()
    Math.ceil()

    String

    创建字符串对象

    var s = “abc”
    var s2 = new String(“abc”)

    String内置类继承自Object

    typeof s 和 typeof s2的区别

    小string
    大String
    两种string的属性和函数都是通用的

    常用函数

    indexof

    获取指定字符串在当前字符串第一次出现处的位置
    未出现过:-1

    replace:只替换第一个
    substr:startindex,length
    substring:startindex, endindex,且不包含右边界

    Boolean

    永远只有两个值:true or false
    Boolean():不是boolean类型的值转换成boolean类型的函数

    有 -> true
    无 -> false

    if后面会自动转换成boolean类型

    Null

    只有一个值null,属于”object”

    引用类型

    Object以及其子类

    创建类的方法
    //方式1
    function 类名(形参){

    }

    //方式2
    类名 = function(形参){

    }

    //看如何使用,是否使用new,看是当作方法使用,还是当作类来使用

    //js中类的定义实际上已经包含了java中定义一个类的全部信息(类名与构造方法名称相同 + 弱类型)

    创建对象的方法

    new 类名(参数列表)
    访问属性

    对象.xxx
    键值对的形式 对象[“xxx”]

    类中属性,实例方法,类方法的声明(注意如何让类方法真正生效)

    prototype属性:动态的获取属性和方法

  • ES6规范之前有6种,ES6之后有7种(多了一个symbol类型)
  • 原始类型

    Undefined

    只有一个值:undefined

    Number

    普通值
    NaN(本来应该是数,结果却不是数)
    无穷大Infinity
    常用函数

    isNaN()
    parseInt()
    parseFloat()
    Math.ceil()

    String

    创建字符串对象

    var s = “abc”
    var s2 = new String(“abc”)

    String内置类继承自Object

    typeof s 和 typeof s2的区别

    小string
    大String
    两种string的属性和函数都是通用的

    常用函数

    indexof

    获取指定字符串在当前字符串第一次出现处的位置
    未出现过:-1

    replace:只替换第一个
    substr:startindex,length
    substring:startindex, endindex,且不包含右边界

    Boolean

    永远只有两个值:true or false
    Boolean():不是boolean类型的值转换成boolean类型的函数

    有 -> true
    无 -> false

    if后面会自动转换成boolean类型

    Null

    只有一个值null,属于”object”

  • Undefined

    只有一个值:undefined

  • 只有一个值:undefined
  • Number

    普通值
    NaN(本来应该是数,结果却不是数)
    无穷大Infinity
    常用函数

    isNaN()
    parseInt()
    parseFloat()
    Math.ceil()

  • 普通值
  • NaN(本来应该是数,结果却不是数)
  • 无穷大Infinity
  • 常用函数

    isNaN()
    parseInt()
    parseFloat()
    Math.ceil()

  • isNaN()
  • parseInt()
  • parseFloat()
  • Math.ceil()
  • String

    创建字符串对象

    var s = “abc”
    var s2 = new String(“abc”)

    String内置类继承自Object

    typeof s 和 typeof s2的区别

    小string
    大String
    两种string的属性和函数都是通用的

    常用函数

    indexof

    获取指定字符串在当前字符串第一次出现处的位置
    未出现过:-1

    replace:只替换第一个
    substr:startindex,length
    substring:startindex, endindex,且不包含右边界

  • 创建字符串对象

    var s = “abc”
    var s2 = new String(“abc”)

    String内置类继承自Object

    typeof s 和 typeof s2的区别

    小string
    大String
    两种string的属性和函数都是通用的

  • var s = “abc”
  • var s2 = new String(“abc”)

    String内置类继承自Object

  • String内置类继承自Object
  • typeof s 和 typeof s2的区别

    小string
    大String
    两种string的属性和函数都是通用的

  • 小string
  • 大String
  • 两种string的属性和函数都是通用的
  • 常用函数

    indexof

    获取指定字符串在当前字符串第一次出现处的位置
    未出现过:-1

    replace:只替换第一个
    substr:startindex,length
    substring:startindex, endindex,且不包含右边界

  • indexof

    获取指定字符串在当前字符串第一次出现处的位置
    未出现过:-1

  • 获取指定字符串在当前字符串第一次出现处的位置
  • 未出现过:-1
  • replace:只替换第一个
  • substr:startindex,length
  • substring:startindex, endindex,且不包含右边界
  • Boolean

    永远只有两个值:true or false
    Boolean():不是boolean类型的值转换成boolean类型的函数

    有 -> true
    无 -> false

    if后面会自动转换成boolean类型

  • 永远只有两个值:true or false
  • Boolean():不是boolean类型的值转换成boolean类型的函数

    有 -> true
    无 -> false

  • 有 -> true
  • 无 -> false
  • if后面会自动转换成boolean类型
  • Null

    只有一个值null,属于”object”

  • 只有一个值null,属于”object”
  • 引用类型

    Object以及其子类

    创建类的方法
    //方式1
    function 类名(形参){

    }

    //方式2
    类名 = function(形参){

    }

    //看如何使用,是否使用new,看是当作方法使用,还是当作类来使用

    //js中类的定义实际上已经包含了java中定义一个类的全部信息(类名与构造方法名称相同 + 弱类型)

    创建对象的方法

    new 类名(参数列表)
    访问属性

    对象.xxx
    键值对的形式 对象[“xxx”]

    类中属性,实例方法,类方法的声明(注意如何让类方法真正生效)

    prototype属性:动态的获取属性和方法

  • Object以及其子类

    创建类的方法
    //方式1
    function 类名(形参){

    }

    //方式2
    类名 = function(形参){

    }

    //看如何使用,是否使用new,看是当作方法使用,还是当作类来使用

    //js中类的定义实际上已经包含了java中定义一个类的全部信息(类名与构造方法名称相同 + 弱类型)

    创建对象的方法

    new 类名(参数列表)
    访问属性

    对象.xxx
    键值对的形式 对象[“xxx”]

    类中属性,实例方法,类方法的声明(注意如何让类方法真正生效)

    prototype属性:动态的获取属性和方法

  • 创建类的方法
    //方式1
    function 类名(形参){

    }

    //方式2
    类名 = function(形参){

    }

    //看如何使用,是否使用new,看是当作方法使用,还是当作类来使用

    //js中类的定义实际上已经包含了java中定义一个类的全部信息(类名与构造方法名称相同 + 弱类型)

  • 创建对象的方法

    new 类名(参数列表)
    访问属性

    对象.xxx
    键值对的形式 对象[“xxx”]

  • new 类名(参数列表)
  • 访问属性

    对象.xxx
    键值对的形式 对象[“xxx”]

  • 对象.xxx
  • 键值对的形式 对象[“xxx”]
  • 类中属性,实例方法,类方法的声明(注意如何让类方法真正生效)
  • prototype属性:动态的获取属性和方法
  • typeof的结果为以下6个字符串,字符串全部小写,用于动态获取数据类型

    “undefined”
    “number”
    “string”
    “boolean”
    “object”
    “function”

    注意:

    null属于Nulll类型,但是null的typeof结果为”object”

  • “undefined”
  • “number”
  • “string”
  • “boolean”
  • “object”
  • “function”
  • null属于Nulll类型,但是null的typeof结果为”object”
  • null,NaN,undefined区别

    它们typeof的区别
    它们 == 的结果
    它们 === 的区别
    == 和 === 的区别

    == :值的效果是否等同
    === :值和类型

  • 它们typeof的区别
  • 它们 == 的结果
  • 它们 === 的区别
  • == 和 === 的区别

    == :值的效果是否等同
    === :值和类型

  • == :值的效果是否等同
  • === :值和类型