javaScript
javaScript分为ECMAScript、DOM、BOM
ECMAScript(js基础语法)js基础
DOM(页面文档对象模型)和BOM(浏览器对象模型)属于Web APIs
JS中对象分为3种:自定义对象,内置对象,浏览器对象;
ECMAScript基础语法,Web APIs是JS 的应用,大量使用JS基础语法做交互效果
ECMAScript
自定义对象,和内置对象是JS基础内容,属于ECMAScript,
常用输出语句 基本输出语句
alert ("弹框输出内容");
console.log("在控制台输出的内容");
document.write("在页面输出内容");
一元运算符
@递增和递减
递增++ 递减–
a++ 先参与运算 后自加
++a 先自加 后参与运算
三元表达式
表达式1 ? 表达式2 : 表达式3
console.logo (sex === 1 ? “男” :“女”)
是等于1 就是男, 不是就是女
函数调用
function关键字 函数声明
函数也是一种数据类型
console.log(f () ) 是调用函数 console.log( f ) 是打印这个函数
函数声明提升 会把函数的声明提升到最顶端 变量声明会把变量的声明提升到最顶端
变量声明提升 只提升声明 不提升赋值 找不到就会保存undefined
c = “c” 隐式全局变量 在函数内部但是没有加nav的变量 不建议大家这样使用,这样不报错就是因为js是弱语言
内置对象
构造函数Array,Boolean,Date,Number,String,RegExp,Function,Object,Error
其他函数 Math Json 全局对象 不是构造函数,不需要new来调用,而是直接使用里面的方法即可。
是JS语言中自带的一些对象提供了一些常用的或是最基本而必要的功能(属性和方法)
文档查找: MDN
arguments 的使用 只有函数才有 arguments对象 而且是每个函数都内置好了这个arguments
Math对象
Math 对象不是构造函数,它具有数学常数和函数的属性和方法。跟数学相关的运算(求绝对值,取整、最大值等)可以使用 Math 中的成员。
注意:上面的方法使用时必须带括号
取得两个数之间的随机整数:
function getRandom(min ,max){
return Math.floor(Math.tandow()*(max - min +1) +min );
}
Date 对象
Date 对象和 Math 对象不一样,Date是一个构造函数,所以使用时需要实例化后才能使用其中具体方法和属性。Date 实例用来处理日期和时间
Date() 如果里面没有输出任何参数,则会依据当前时间来创建一个Date对象
数组对象
转化数组
arr.toString() 把数组转化为字符串
用new Array 新数组,里面一个数是数组的长度,
Array(2, 3); // 等价于 [2,3] 这样写表示 里面有2个数组元素 是 2和3
join() 把字符串的每一项进行拼接 中间是”” 拼接符号
排序
reverse 方法 反转数组
sort() 对数组的元素进行排序,会改变原来的数组 放回新数组
如果传入“function(a,b){ return a-b;}”,则为升序
如果传入“function(a,b){ return b-a;}”,则为降序
迭代方法
filter 指定的函数测试所有的元素,并创建一个包含所有通过测试的元素的新数组
forEach (function (e))
第一个是元素,第二个是索引,第三个是当前数组
返回的是索引号
{indexOf 寻找数组里面元素的位置(从前往后面找)
lastIndexOf 寻找数组里面元素的位置(从后面往前找)
} 两个参数 第一个参数为要找的元素 第二个参数为从哪里开始找
找不到这个元素返回-1
截取
截取数组: slice (第一个数字符为开始,第二个数字为结束)【开始,结束) 不会影响原来的数组
arr. splice 1.开始 ; 2. 个数 3.对原来数组要加入的个数 会对原来的数组进行修改
清空数组: array.splice ( 0 , array. lenght)
array.lenght = 0;
array = [] ;
检测数组:
instanceof Array关键字
Array.isArray()
常用方法:增删
arr.push() 从后面推入元素 放回值是 新数组的长度
arr.pop() 从后面删除参数 返回的是被删除的元素
. shift 从前面删除元素 返回的是被删除的元素
. unshift 从前面添加元素 放回值是 新数组的长度
字符串对象
基本包装类型:
就是把简单数据类型包装成了复杂数据类型,这样基本数据类型就有了属性和方法了
1.把简单数据类型包装为复杂数据类型
2.把临时变量的值给Str
3.销毁这个临时变量
字符串的不可变性
指的是里面的值不变,虽然看上去内容改变了,其实是他的地址改变了,内存中新开辟了一个内存空间;当重新给字符串变量赋值的时候,变量之前保存的字符串是不会修改的,会在内存中重新给字符串赋值,会重新在内存中开辟空间,这就是字符串不可变。
由于字符串的不可变,在大量拼接字符串的时候会有效率问题
根据字符返回位置,根据位置返回字符
indexOf:根据字符返回位置
1.charAt(index) 根据位置返回字符
2.charCodeAt(index) 返回相应索引号的字符ASCII值目的: 判断用户按下了那个键
3.str[index] H5 新增的
截取字符串
slice() 从start位置开始,截取到end位置,end取不到
subString() 从start位置开始,截取到end位置,end位置取不到
空格去掉
trim 只能去掉字符串两边的空白符
split 按照指定字符,对字符串进行切割,返回一个数组
转换为大小写:
转化为大写 console.log(str.toUpperCase());
转化为小写 console.log(str.toLowerCase());
substr() 从start位置开始,截取length个字符
简单数据类型和复杂数据类型
简单数据类型:直接数据类型:直接储存的是值的本身 -number、string 、boolean
-null undefined
复杂数据类型(引用类型):在存储时变量中存储的仅仅是地址(引用),通过 new 关键字创建的对象(系统对象、自定义对象),如 Object、Array、Date等;