javascript是一种运行于javascript解释器/引擎中的解释型脚本语言,即运行前不需要编译,也不会检查错误,直到出现错误为止
1、js组成
- 核心(ECMAScript)
- 文档对象模型(DOM,Document Object Model),让js有能力与网页进行对话
- 浏览器对象模型(BOM,Browser Object Model),让js有能力与浏览器对话
2、将js代码嵌入html页面中
- 第一种,将JS代码嵌入在元素“事件中”,onclick:当前单机元素时所作的操作,如<div id="" οnclick="JS代码"></div>
- 第二种,将js代码嵌入在<script>标记中,<script></script>允许出现在网页中的任意位置
- 第三种,将JS代码写在外部脚本文件中(**.js);首先创建js文件,并编写JS代码(***.js) , 然后在页面中引入js文件<script src="js文件路径"></script>
3、变量声明
var 变量名
4、数据类型
基本数据类型分类:
a、数字类型(number)——可表示32位的整数和64位的浮点数 // typeof number 为number
b、字符串类型(string)——表示一系列的文本类型,由Unicode字符,数字,标点在内存中,都占2字节;\n表示换行,/r表示回车,/t表示制表符 // typeof string 为string
c、布尔类型(boolean)——用于表示条件的结果 // typeof boolean 为 boolean
d、空(Null)——声明对象未赋值 // typeof null 为 object
e、未定义(unfinded)——声明变量未赋值或访问对象不存在 // typeof unfinded 为unfinded
数据类型转换:
JS是弱类型:由数据来决定变量的数据类型是什么
a、隐式转换:自动转换,由JS在运算过程中,自己进行转换的操作,不需人为参与
- 函数:
typeof()或者typeof;
ex:var num1 = 15;
var s1 = typeof num1;//获取num1的数据类型 Number
- NaN:Not a Number——不是一个数字;isNaN判断数据是否为非数字,结果为true——不是一个数组
所有数据类型和string类型相加后,结果都为string数据类型
b、显示转换(强制转换)- 转换函数
- s1.toString()——将任意类型的数据转换为string类型,变量.toString()将会得到一个全新的结果,类型为string;此方法null类型不可转换为string类型,可以使用String(s1)转换
- parseInt()——类型为整型,用来获取指定数据的整数部分,从左向右依次转换,碰到第一个非整数字符,则停止转换;如果第一个字符就是非整数字符,则结果为NaN;用法——var result = parsetInt(数据);true转换后为NaN;可将123abc转换为123
- parseFloat()——将指定数据转化为小数,用法同上
- Number()——将一个字符解析为number,如果包含非法字符,则返回NaN;用法同上;true可转换为1;123abc不可转换
- 在数据前面加正负号或让数据减0也可把数据转换为数值类型
-
Boolean(变量)——将指定数据转换为布尔类型,除null,unfinded,"",0,NaN转换结果为false外,其他均为true
5、函数
- 语法:
function 函数名(参数列表声明){
可执行语句;
}
- 声明提前:JS在正式执行之前,会将var声明的变量和function声明的函数,预读到所在域的顶部,但是对变量的赋值,还保留在原来的位置
console.log(a);//不会出错,输出undefined,无下面一行就会报错
var a = 100;
console.log(a);//100;
var a;//仅声明提前
console.log(a);//undefined
a = 100;//赋值仍保留在原位置
console.log(a);//100
- 按值传递:传参时,实际上是将实参复制了一份副本传给了函数。在函数体内,对变量进行修改,实际上是不会影响外部实参变量的
6、循环
continue关键字——用在循环中,用于终止本次循环,继续下次循环
break关键字——用在循环中,终止整个循环结构
7、数组
a.创建(两种方法都可直接在括号初始化)
- 数组直接量:var arr=[];
- 用new:var arr=new Array();//在创建数组时,还不知道数组中元素内容时常用此方法
b.固定套路
- 获取数组最后一个元素:arr[arr.length-1]
- 获取数组倒数第n个元素:arr[arr.length-n]
- 数组缩容:减少arr.length的数值,会删除结尾对的多余元素
c.关联数组:可以自定义下标名称的数组
var bookInfo=[];//先定义空数组
bookInfo['bookName']='西游记';//再初始化
for(var key in hash){
key//只是元素的下标名
hash[key]//当前元素值
}
不能用字符输出,length属性失效,不能用for循环遍历,只能用for....in
c.数组API
- String(arr):将arr中每个元素转化为字符春,用逗号分隔;固定套路——对数组拍照,用于鉴别是否数组被修改过
- arr.join("连接符"):将arr中每个元素转化为字符串,用自定义的连接符分隔 固定套路:1.将字符组成单词,单词组成句子;2.判断数组时空数组:arr.join("")==""; 3.将数组转化为页面元素的内容:"<开始标签>"+arr.join("<结束标签><开始标签>")+"</结束标签>";
- a1.reverse():颠倒数组中元素的顺序,仅颠倒不可排序
- a.sort():将元素按照从小到大的顺序重新排列,只能排列字符串类型的元素;
- var a=a1.contact(值1,a2,值2):拼接两个或更多的数组,并返回结果,将数组a1,值1,数组a2,值3拼接为新的数组
- var a=a1.slice(start,end+1):返回现有数组的一个子数组;选取arr中start位置开始,到end结束所有,元素组成新数组返回——原数组保持不变
- splice()——修改数组,包括删除和插入
<script type="text/javascript">
var a=[21,13,45,99];
var b=[34,56,11];
console.log(a.splice(1,2));//删除从数组下标为1开始的两个值
console.log(b.splice(1,0,[33,55]));//从数组下标为1插入数组
</script>