概述
-
客户端脚本语言
- 客户端:在客户端浏览器中运行
- 脚本语言:不需要编译,直接被浏览器解析执行
-
与HTML交互,实现一些动态效果
基本语法
与HTML结合方式
- 内部结合
注释
和Java一样
输出
-
弹出窗口输出:alert(); -
页面输出: document.write(“Hello,World!”); // 可以打印HTML语句 -
控制台输出
-
页面按F12弹出控制台,F12开发者工具,看console还可以看代码错误 <script>
console.log("输出一条日志");//最常用
console.info("输出一条信息");
console.warn("输出一条警告");
console.error("输出一条错误");
</script>
数据类型
原始数据类型(基本数据类型)
- number:数字, 整数/小数/NaN(Not a number,一个不是数字的数字类型)
- String:字符串, 字符串, 单引号双引号都一样,没有字符
- boolean:true/false
- null空占位符
- undefined:未定义
- 如果一个变量没有赋初始值,默认为underfoot类型,值也是undefinder
引用数据类型(对象)
变量
- 不管什么语言,变量都是指一块存储数据的内存
- JavaScript是弱类型语言,声明后什么类型的数据都可以换,更换数据之后也可以随意换
- 定义语法 : var 变量名 = 初始化值;// 也可以不写初始化值
- 通过typeof可以得到变量实际原始数据类型:typeof(变量名),null会得到object(对象的空占位符)
- 定义时不写var代表是全局变量
运算符
基本与Java一致
-
在运算中,会先强转在运算
- string转数字,先转字面值,转不了变成NaN,NaN做任何运算后都是NaN
- Boolean转,true为1,false为0
-
字符串按照字典类型比较,类型不同的比较先强制转换再比较 -
===,全等于,比较前先看类型,如果类型不同直接返回false -
其他类型转false:
流程控制语句
-
基本和Java一样 -
Javaswitch可以接受的数据类型:
- byte
- short
- int
- char
- 枚举(JDK1.5)
- String(JDK1.7)
-
JavaScript中switch什么类型都可以接收
基本对象
Function对象
-
函数对象 -
创建(俩种):
function 方法名(形参列表){
方法体
}
var 方法名 = function(形参列表){
方法体
}
-
方法的属性
-
方法特点
- 形参不写var
- 方法是一个对象,所以定义同名时,后定义的会覆盖前面的,不会有方法重载
- 方法调用只与方法名有关,与参数列表无关,可以不写,少写(undefined),多写
- 方法声明中有一个隐藏的内置对象(一个数组),arguments,接受所有的实际参数列表,因此可以不写形参,直接使用arguments
- 返回值类型不写
-
调用
Array 数组对象
-
创建:(三种方式) var name = new Array(元素列表);
var name = new Array(默认长度);
var name = [元素列表];
-
方法
- join()方法,按照指定分隔符将数组拼接成字符串
- push()方法,在末尾添加元素
-
属性
-
特点
date 日期对象
-
创建: var name = new Date();
-
方法:
- toLocaleString(),返回Date对象对应的时间
- getTime(), 返回毫秒值,当前时间与1970/1/1的毫秒值差
Math 数学对象
- 不用创建,直接Math.方法名/属性名
- 方法:
- random(),返回0-1之间的随机数,左闭右开,正常程序一直都是含左不含右
- ceil(x),向上取整
- floor(x),向下取整
- round(x),四舍五入
- 属性
RegExp 正则表达式对象
-
正则表达式规则:
-
正则表达式对象
Global 全局函数对象
- 全局对象,不需要写对象名,直接方法名()就可以访问
- URL编码:
- 网络传输用不了中文,一般默认参数URL编码
- 每个字节由8个二进制位组成,先将每八个二进制位分成俩组,每组都变成十六进制数,组合起来再在前面加上%,得到URL编码
- utf-8编码中一个汉字三个字节,gdk编码中俩个字节
- 方法
- encodeURL(),URL编码
- decodeURL(),URL解码
- encodeURLComponent(),URL编码,编码字符更多
- decodeURLComponent(),URL解码,编码字符更多
- parseInt(), 字符串转数字
- 对比直接强转,可以逐一判断每个字符是不是数字,直到不是数字之后将前面数字部分转为number
- isNaN(),判断是不是NaN
- 对比直接判断,不关是不是俩个NaN==,结果都是false(NaN六亲不认)
- eval(), 将字符串转成JS代码执行
|