javascript 01: 语法基础()-javascript
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
获取指定字符串在当前字符串第一次出现处的位置
未出现过:-1replace:只替换第一个
substr:startindex,length
substring:startindex, endindex,且不包含右边界Boolean
永远只有两个值:true or false
Boolean():不是boolean类型的值转换成boolean类型的函数有 -> true
无 -> falseif后面会自动转换成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
获取指定字符串在当前字符串第一次出现处的位置
未出现过:-1replace:只替换第一个
substr:startindex,length
substring:startindex, endindex,且不包含右边界Boolean
永远只有两个值:true or false
Boolean():不是boolean类型的值转换成boolean类型的函数有 -> true
无 -> falseif后面会自动转换成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
获取指定字符串在当前字符串第一次出现处的位置
未出现过:-1replace:只替换第一个
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
获取指定字符串在当前字符串第一次出现处的位置
未出现过:-1replace:只替换第一个
substr:startindex,length
substring:startindex, endindex,且不包含右边界 - indexof
获取指定字符串在当前字符串第一次出现处的位置
未出现过:-1 - 获取指定字符串在当前字符串第一次出现处的位置
- 未出现过:-1
- replace:只替换第一个
- substr:startindex,length
- substring:startindex, endindex,且不包含右边界
- Boolean
永远只有两个值:true or false
Boolean():不是boolean类型的值转换成boolean类型的函数有 -> true
无 -> falseif后面会自动转换成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
获取指定字符串在当前字符串第一次出现处的位置
未出现过:-1replace:只替换第一个
substr:startindex,length
substring:startindex, endindex,且不包含右边界Boolean
永远只有两个值:true or false
Boolean():不是boolean类型的值转换成boolean类型的函数有 -> true
无 -> falseif后面会自动转换成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
获取指定字符串在当前字符串第一次出现处的位置
未出现过:-1replace:只替换第一个
substr:startindex,length
substring:startindex, endindex,且不包含右边界Boolean
永远只有两个值:true or false
Boolean():不是boolean类型的值转换成boolean类型的函数有 -> true
无 -> falseif后面会自动转换成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
获取指定字符串在当前字符串第一次出现处的位置
未出现过:-1replace:只替换第一个
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
获取指定字符串在当前字符串第一次出现处的位置
未出现过:-1replace:只替换第一个
substr:startindex,length
substring:startindex, endindex,且不包含右边界 - indexof
获取指定字符串在当前字符串第一次出现处的位置
未出现过:-1 - 获取指定字符串在当前字符串第一次出现处的位置
- 未出现过:-1
- replace:只替换第一个
- substr:startindex,length
- substring:startindex, endindex,且不包含右边界
- Boolean
永远只有两个值:true or false
Boolean():不是boolean类型的值转换成boolean类型的函数有 -> true
无 -> falseif后面会自动转换成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的区别
- 它们 == 的结果
- 它们 === 的区别
- == 和 === 的区别
== :值的效果是否等同
=== :值和类型 - == :值的效果是否等同
- === :值和类型