js的组成:
1、ECMAScript
2、BOM 整个浏览器
3、DOM document文档 从<html>开始到<html>结束
js中的数据类型分为两大类
1、基本数据类型
1》数字 number 100 3.14
2》字符串 string 所有带双引号或者单引号
3》布尔值 boolean true false
4》特殊数据类型 null undefined
2、复合数据类型
变量的声明,通过关键字var来声明变量
var age = 18;
js中的运算符的分类
1、算数运算符 ==》 + - * / % ++ --
2、关系运算符
注:关系运算符中操作数为非数字的时候要遵从以下规律
1) 如果两个操作数都是数值,则数值比较
2) 如果两个操作数都是字符串,则比较两个字符串对应的字符ASCII编码值(二进制>十进制)
3)
== 等于 alert(20 == "20") //输出为true
!= 不等于
>
<
<=
>=
=== 全等于 alert(20 === "20") //输出为false
!== 全不等于
3、逻辑运算符
&& 与
注:只有当两个表达式的结果都为真的时候,与运算结果才为true
<短路操作> 当第一个表达式为false,第二个就不去执行
alert(5 < 3 && alert(a));
|| 或
注:只有当两个表达式的结果都为假的时候,或运算的结果才为假
<短路操作> 当表达式1为true的时候,表达式2就不去执行了,判断整个表达式为true
alert(5 > 3 && alert(a));
! 非
4、赋值运算符 += *= /= %=
5、自增、自减运算符
强制数据类型的转换
parseInt() 取整 兼容Number的功能
var tem = parseInt("20a"); ===》输出结果为20
var tem = parseInt("3.14"); ===》输出结果为3
parseFloat() 取浮点数
Infinity ==》无穷大
-Infinity ==》无穷小
一元运算符
注:只能操作一个值的运算符,叫做一元运算符
a++ 先取值再+1
++a 先+1再取值
a-- 先取值再-1
--a 先-1再取值
进制转换
1、十进制转二进制
方法:除二取余,倒序排列
52 ==》 110100
2、二进制转十进制
110100 ==》 52
1*2^2 + 1*2^4 + 1*2^5 = 52
3、十进制转八进制/十六进制
方法:先将十进制数转成二进制,再将二进制转成对应的八进制或者十六进制
二进制转八进制
方法:从右向左,每三位一组,不足三位的用0补齐,将每一组数转成十进制
110 100 ==》64
4*8^0 + 6*8^1 = 52;
二进制转十六进制
方法:从右向左,每四位一组,不足四位的使用0补齐,将每一组数转成十进制。
0011 0100 ===》 34
4*16^0 + 3*16^1 = 52;
数组:
1、数组的《栈》方法: 栈方法的特点是 先进后出
push() 在数组的末尾添加
格式: arr.push("我是添加的元素")
pop() 在数组的末尾去除 里面不能添加参数
格式: arr.pop()
2、数组的《队列方法》 队列方法的特点是 先进先出
push() 也是添加到数组的末尾
shift() 在数组的头部去除 里面也没有参数
unshift() 在数组的头部插入元素
格式: unshift(参数1,参数2,...)
3、数组的其它常用方法
concat()
格式:数组1.concat(数组2)
功能:数组的合并
格式:
var arr1 = ["张三","李四","王五","蜘蛛侠"];
var arr2 = ["我222","我是333"]
var ttt = arr1.concat(arr2);
alert(ttt);
slice()
格式:数组.slice(start,end);
功能:基于当前数组获取指定区域元素并创建一个新数组,源数组不改变。
参数:start开始获取区域的下标,end结束获取区域的下标-1
返回值:指定区域元素生成的新数组。
示例:
var arr = ["张三0","李四1","王五2","蜘蛛侠3","KT猫"]
var jqz = arr.slice(1,3)
document.write(arr);
document.write(jqz);
splice()
格式:数组.splice(start,length,元素...)
功能:可以完成删除、插入、替换操作
参数: 参数1:截取开始下标
参数2:截取的长度
参数3:在截取的开始下标位置,我们要插入的元素,插入元素的个数是随意的
返回值:截取掉的元素,组成的数组
注:会对元素进行修改
删除功能示例代码:
var arr = ["张三0","李四1","王五2","蜘蛛侠3","KT猫"];
var sc = arr.splice(1,3);
document.write(arr);
document.write(sc);
插入功能示例代码:
var arr = ["张三0","李四1","王五2","蜘蛛侠3","KT猫"];
var sc = arr.splice(1,0,"插入");
document.write(arr+"</br>");
document.write(sc);
替换功能示例代码:
var arr = ["张三0","李四1","王五2","蜘蛛侠3","KT猫"];
var sc = arr.splice(1,1,"插入");
document.write(arr+"</br>");
document.write(sc);
join()
格式: 数组.join(拼接符)
功能: 使用拼接符将数组中的元素拼接成字符串
参数: 拼接符
返回值: 拼接好的字符串
示例代码:
var arr = [10,20,30];
var ceshi = arr.join("+");
document.write(ceshi)
reverse()
格式:数组.reverse();
功能:排序(逆向排序)
示例代码:
var arr = [10,20,5,45,3];
arr.reverse();
document.write(arr);
sort()
格式: 数组.sort()
功能: 将数组中的元素升序排序(从小到大)。
注意: sort默认是按照字符串进行排序。
冒泡排序算法===》需要更加深入的学习
选择排序算法===》需要更加深入的学习
字符串: ====》字符串有函数 字符串有方法
字符串的方法:
charAt()
格式:字符串.charAt(下标)
功能:字符串下标的访问
返回值:对应下标的字符
注:我们可以直接通过字符下标去访问该字符
示例代码:
var str = "你好"
alert(str.charAt(0)) ===》不常用
alert(str[0]) ===》常用
charCodeAt()
格式: 字符串.charCodeAt(下标)
功能: 字符串下标的ASCII码值
返回值: 返回字符串中对应下标字符的ASCII码值
String.fromCharCode()
格式: String.fromCharCode(ASCII码值)
功能: 和charCodeAt()相反, 在参数填写ASCII码值,输出为对应字符
参数: ASCII码值
返回值: ASCII码值对应字符组成的字符串
concat()
格式: 字符串1.concat(字符串2)
功能: 字符串拼接
返回值: 拼接成的字符串
注: 一般情况下使用较少,一般情况下用拼接符"+"
indexOf()
格式: 字符串.indexOf(子串,开始查找的位置);
功能: 查找字符串第一次出现的位置
返回值: 如果在字符串中查找到了子串第一次出现的位置,返回子串出现的位置,否则没有查找到返回-1。
示例代码:
var str = "abcde998536";
var chazhao = str.indexOf("abc");
document.write(chazhao)
lastIndexOf()
格式: 字符串.lastIndexOf(查找的字符串)
功能: 查找字符串最后一次出现的位置
返回值: 子串在字符串中最后一次出现的位置,如果没有,返回-1
search() ===》参数可以是正则 /abc/ig
格式:
功能:
返回值:
注: 正则表达式可以添加修饰符,i代表忽略大小写,g代表全局匹配
示例:
var str = "Abcabcabc";
alert(str.search(/abc/i));
replace()
格式: 字符串.replace(匹配的字符串/正则表达式,替换成新的字符串)
功能: 字符串的替换
返回值: 替换完成以后生成的新字符串。
示例:
var str = "how are you";
var ttt = str.replace("are","尤畅")
document.write(ttt);
substring()
格式: 字符串.substring(start,end)
功能: 字符串提取,在指定范围内,提取字符串,生成新的字符串
返回值: 提取到的新字符串
注: 不包含结束位置的
示例代码:
var str = "helloworld";
alert(str.substring(2,2))
split
格式: 字符串.split(分割符,生成数组的长度);
功能: 字符串分割成字符
返回值: 通过分割符,分割成的装有子串的数组。
示例代码:
var str = "this is a box";
var arr = str.split(" ");
document.write(arr);
toLowerCase(): 全小写方法
toUpperCase(): 全大写方法
示例代码:
var str "HELLO world";
alert(str.toLowerCase())
alert(str.toUpperCase())
ECMA5严格模式
"use strict" ===》加上这么一句话 就是严格模式
indexOf()
格式: 数组.indexOf(元素,index)
注: 使用方法和字符串的方式一致。
forEach()
格式: 数组.forEach(function(item,index,array))
item 当前遍历到的元素
index 当前遍历到的下标
array 当前数组
map()
格式: 数组.map(function(item,index,array))
示例代码:
var arr = [20,30,40,50]
var newArr = arr.map(function(item,index.array){
return item + 2;
})
reduce() ===》归并
filter() ===》过滤
some() ===》某些
判断retun后面的条件是否成立,如果成立返回true,否则返回false
every() ===》跟some一样,但是要求每一项都符合,才返回true,有一项不符合就返回false
Math对象
Math对象用于执行数学任务
Math对象常用的函数
Math.round() ===》四舍五入
alert(Math.round(3.5));
Math.random() ===》生成随机数0~1
Math.max() ===》返回较大数
Math.min() ===》返回较小数
示例代码:
alert(Math.max(10,20))
alert(Math.min(10,20))
Math.abs() ===》返回绝对值
Math.ceil() ===》向上取整
Math.floor() ===》向下取整
Math.pow(x,y) ===》求x的y次方 x是底数 y是指数
Math.qurt(4) ===》求平方的
Math对象的勾股函数
参数: 勾股函数的参数都是弧度
Math.PI = 180弧度
1弧度 = Math.PI/180;
Math.sin() 求正弦
Math.cos() 求余弦
Math.tan() 求正切