JavaScript 笔记
- JS的组成
ECMAScript DOM BOM
JavaScript基础语法 页面文档对象模型 浏览器对象模型
- 数据类型转换
转换为字符串 toString ()
转换为数字型 parseInt (string) parseInt (string)
转换为布尔型 Boolean () 代表空、否定的值会被转换为 false ,如 ‘’、0、NaN、null、undefined 其余值都会被转换为 true
- arguments的使用
当不确定有多少个参数传递的时候,可以用 arguments 来获取。
- 具有 length 属性
- 按索引方式储存数据
- 不具有数组的 push , pop 等方法
- 遍历对象
for…in 语句用于对数组或者对象的属性进行循环操作。
- Math对象
Math对象不是构造函数,它具有数学常数和函数的属性和方法
属性、方法名 | 功能 |
---|---|
Math.PI | 圆周率 |
Math.floor() | 向下取整 |
Math.ceil() | 向上取整 |
Math.round() | 四舍五入版 就近取整 注意 -3.5 结果是 -3 |
Math.abs() | 绝对值 |
Math.max()/Math.min() | 求最大和最小值 |
Math.random() | 获取范围在[0,1)内的随机值下 |
- Date对象
Date对象是一个构造函数,使用时需要实例化后才能使用其中具体方法和属性。
获取当前时间必须实例化
var now = +new Date();
获取指定时间的日期对象
var future = new Date('2019/5/1');
方法名 | 说明 |
---|---|
getFullYear() | 获取当年 |
getMonth() | 获取当月(0-11) |
getDate() | 获取当天日期 |
getDay() | 获取星期几(周日0-周六6) |
getHours() | 获取当前小时 |
getMinutes() | 获取当前分钟 |
getSeconds() | 获取当前秒钟 |
- 数组对象
检测是否为数组
- instanceof 运算符
instanceof 可以判断一个对象是否是某个构造函数的实例
var arr = [1, 23];
var obj = {};
console.log(arr instanceof Array); // true
console.log(obj instanceof Array); // false
- isArray()
isArray()用于判断一个对象是否为数组,isArray() 是 HTML5 中提供的方法
var arr = [1, 23];
var obj = {};
console.log(Array.isArray(arr)); // true
console.log(Array.isArray(obj)); // false
添加删除数组元素的方法
数组排序
sort方法需要传入参数来设置升序、降序排序
- 如果传入“function(a,b){ return a-b;}”,则为升序
- 如果传入“function(a,b){ return b-a;}”,则为降序
数组索引方法
数组转换为字符串
其他方法
- 字符串对象
基本包装类型
为了方便操作基本数据类型,JavaScript 还提供了三个特殊的引用类型:String、Number和 Boolean。
基本包装类型就是把简单数据类型包装成为复杂数据类型,这样基本数据类型就有了属性和方法。
// 下面代码有什么问题?
var str = 'andy';
console.log(str.length);
按道理基本数据类型是没有属性和方法的,而对象才有属性和方法,但上面代码却可以执行,这是因为js 会把基本数据类型包装为复杂数据类型,其执行过程如下 :
// 1. 生成临时变量,把简单类型包装为复杂数据类型
var temp = new String('andy');
// 2. 赋值给我们声明的字符变量
str = temp;
// 3. 销毁临时变量
temp = null;
字符串的不可变性
指的是里面的值不可变,虽然看上去可以改变内容,但其实是地址变了,内存中新开辟了一个内存空间。
根据字符返回位置
根据位置返回字符
ASCII表
字符串操作方法
replace()方法
replace() 方法用于在字符串中用一些字符替换另一些字符,其使用格式如下:
字符串.replace(被替换的字符串, 要替换为的字符串);
split()方法
split()方法用于切分字符串,它可以将字符串切分为数组。在切分完毕之后,返回的是一个新数组。
其使用格式如下:
字符串.split("分割字符")
- 堆栈
栈(操作系统):由操作系统自动分配释放存放函数的参数值、局部变量的值等。其操作方式类似于数据结构中的栈;
简单数据类型存放到栈里面
堆(操作系统):存储复杂类型(对象),一般由程序员分配释放,若程序员不释放,由垃圾回收机制回收。
复杂数据类型引用类型变量(栈空间)里存放的是地址,真正的对象实例存放在堆空间中