JS概述
:是一种基于对象和事件驱动并具有相对安全性 的客户端脚本语言。(弱类型脚本语言)
作用:给网页添加动态的功能; 验证用户的信息(表单验证)
对象:万事万物都是对象 对象中的三大要素/三大特征:
- 属性: 用来描述一个对象的外观特征表现.
- 方法(主动行为): 对象自己本身所具备的能力.
- 事件(被动行为): 对象自己接受到一种指令需要完成的一 种行为。
解析执行与编译执行
- 编译执行:把代码编译成 CPU 认识的语言(文件),然后整 体的执行。
- 解析执行:一行一行解析,解析一行执行一行。
解释
脚本语言是:弥补编译语言的不足而存在的,作为补充语 言,不用编译。
弱类型语言:简单理解定义一个变量,可以有多种数据类 型。(var temp)
前端三大模块
- HTML:页面结构
- CSS:页面表现:元素大小、颜色、位置、隐藏或显示、部 分动画效果
- JavaScript:页面行为:部分动画效果、页面与用户的交 互、页面功能
变量
作用:储存信息的容器,方便读写
声明:var关键字声明(驼峰命名法)
- 变量命名必须以字母或是下标符号”_”或者”$”为开头。
- 变量名长度不能超过 255 个字符。
- 变量名中不允许使用空格,首个字不能为数字
- 不用使用脚本语言中保留的关键字及保留符号作为变量名。
- 变量名区分大小写。(javascript 是区分大小写的语言)
- 汉语可以作为变量名。但是不建议使用!!!
变量、函数、属性、函数参数命名规范:
区分大小写
第一个字符必须是字母、下划线(_)或者美元符号($)
其他字符可以是字母、下划线、美元符或数字
数据类型及转换
数据类型分为两大类:基本数据类型和特殊数据类型
基本数据类型
- 数字型(Number型):
整型数据:整型数据指的是数据形式是十进制整数来的,整数可以为正数、0或 负数。(Int)
浮点型数据:整型数据指的是整数,没有小数的。浮点型数据是指带有小数的数据。但会丢失数据(Float)
parseint()和parsefloat()可以将字符串类型的数字转换为数字类型
tostring()可以将数字类型转换为字符串类型 - 字符串型(String型):
字符串是由Unicode字符、数字、标点符号等组成的序列,它是 JavaScript用来表示文本的数据类型。
程序中的字符串型数据是包含在单 引号或双引号中的, - 布尔型(Boolean型)
数值型和浮点型的数据值都有无穷多个,但是布尔型数据类型只有2 个:真(true)和假(false)。
0可以看作false,1可以看做true。
特殊特殊类型
(1)空值(null型):整型、浮点型这些数据在定义的时候,系统都会分配一定的内存空间 返回object
(2)未定义值(undefined型) :
如果一个变量虽然已经用var关键字声明了,但是并没有对这个变量 进行赋值,而无法知道这个变量的数据类型,
因此这个变量的数据类型是 undefined,表示这是一个未定义数据类型的变量。返回undefined
undefined来源于null 所以在比较时返回true所以没必要将变量声明为undefined 声明空对象时直接赋值为null
(3)非数字(NaN):
当在程序中由于某种原因发生计算错误后,将产生一个没有意义的 数字,NaN与任何数值都不相等包括其自身, 返回的数字值就是NaN。
变量类型
值类型
- 占用固定空间,保存在栈中
- 保存与复制是值本身
- 使用typeof检测数据类型
- 基本数据类型是值类型
引用类型
- 占用空间不固定,保存到堆中
- 保存与复制是指向对象一个指针
- 使用instanceo检测数据类型
- 使用new()构造的对象是引用
作用域
全局变量
(1)在函数体外定义的变量
(2) 在函数体内部定义的无 var 的变量
调用:任何位置
局部变量
(1)在函数体内使用 var 声明的变量
(2)函数的参数变量
调用:当前函数体内部
优先级
局部变量高于相同名字的局部变量
参数变量高于相同名字的局部变量
局部变量高于相同名字的参数变量
运算符和表达式
运算符类型分为5种
(1) 算术运算符;
算术运算符用于在程序中进行加、减、乘、除等运算。
+,-,*,/,%,++,- -
(2) 比较运算符;
比较运算符的基本操作过程是:首先对操作数进行比较,该操作数可以是数字也可以是字符串,然后返回一个布尔值true或false
<, >, <=, >=, (等于==),( 不等于!=),(值和类型都相等===)
(3) 赋值运算符;
JavaScript中的赋值运算可以分为2种:简单赋值运算和复合赋值运算。
简单赋值运算是将赋值运算符(=)右边表达式的值保存到左边的变 量中。
复合赋值运算结合了其他操作(如算术运算操作)和赋值操作。
(+=, -=,=, *=, /=,&=,%=,|=,^=)
(4) 逻辑运算符;
逻辑运算符通常用于执行布尔运算,它们常常和比较运算符一起使 用来表示复杂比较运算,这些运算涉及的变量通常不止一个,而且常用于 if、while和for语句中。
&&,||,!
(5) 条件运算符;
JavaScript 条件运算符也被称为三元运算符,因为它是JavaScript仅有的使用三个操作数的运算符。
流程语句
流程语句:
顺序结构是JavaScript中最基本的结构,说白了就是按照从上到 下、从左到右的顺序执行。
结构语句:
选择结构是按照给定的逻辑条件来决定执行的顺序,有单向选择、 双向选择和多向选择之分,但是程序在执行过程中都只是执行其中的一条分支。
循环语句:
循环结构即根据代码的逻辑条件来判断是否重复执行某一段程序。若逻辑 条件为true,则进入循环重复执行;若逻辑条件为false,则退出循环。
常见语句
for循环语法:重复一个代码代码段到一定次数
流程:
1.用循环变量初始值与循环条件相比较,确定返回值
2.如果返回值为true,则执行循环体
3.执行完一次后,进行递增或递减运算
4.用运算结果与循环条件比较
5.如果返回结果为true则继续执行循环体,如果为false则推出循环体
for(循环变量=初值;循环条件;递增/递减计数){
循环代码段
}
if判断语法:
流程:
1.判断条件表达式一,如果返回值为true,则执行代码段一
2.如果条件表达式的值为false,则跳过代码段一并检测条件表达式二
3.如果所有的条件表达式返回值为false,则执行else后的代码段
if(条件表达式一){
代码段一
}else if(条件表达式二){
代码段二
}else{
代码段三
}
数组与字符串
概念:数组是一组数据的集合,数组里面的数据可以是不同的类型。
声明:初始化一个数组有三种方法
- var myCars=new Array();
- var myCars=new Array(“BaoMa”,“Aodi”,“BenChi”);
- var myCars=[“BaoMa”,“Aodi”,“BenChi”];
操作数组方法
(1) Join():将数组成员通过一个分割符合并成字符串
(2) Push()和 pop():从数组后增加成员或是删除成员
(3) Unshift()和 shift():从数组的前面增加成员或是删除成员
(4) Reverse():将数组的数值进行翻转
(5) Indexof():返回数组中元素第一次出现的索引值
(6) Splice():在数组中增加或是删除成员
(7) Slice():从一个数组中选择(截取)元素
字符串(String)对象及处理字符串的方法 length
(1) Match()方法: 可以从字符串内索引指定的值,或者找 到一个或多个正则表达式的匹配。
(2) Search()方法: 法用于检索字符串中指定的子字符串,或检索 与正则表达式相匹配的子字符串。
(3) IndexOf()方法:可返回某个指定的字符串值在字 符串中首次出现的位置。
(4) Replace()方法:replace()方法常常用于在字符串中用一些字符替换另一些 字符
(5) CharAt()方法的:获取字符串中的某一个字符
(6) 字符串大小写转换 :使用小写 toLowerCase()和 大写toUpperCase()这两种方法来转化 字符串的大小写
(7)concat()方法:连接 2 个或多个字符串。
(8) 分割字符串 split():法把一个字符串分割成字符串数组。
(9)substring()方法:提取字符串中的某一部分 字符串。