黑马程序员-JS基础day6-JS内置对象与堆栈-创新互联
js中自带的一些对象,并封装了常用的属性和方法,帮助我们快速开发;
目前成都创新互联已为近1000家的企业提供了网站建设、域名、虚拟空间、网站托管维护、企业网站设计、博望网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。1.Math对象Math数学对象不是构造函数 ,所以我们不需要new 调用,而是直接使用里面的属性和方法即可;
属性 | 代码 | 返回值 |
圆周率 | Math.PI | 3.141592653589793 |
向下取整 | Math.floor(1.1) | 1 1 |
向上取整 | Math.ceil(1.1) Math.ceil(1.9) | 2 2 |
四舍五入 | Math.round(1.1) Math.round(1.5) Math.round(1.9) Math.round(-1.1) Math.round(-1.5) | 1 这个结果是 -1! |
绝对值 | Math.abs(1) Math.abs(-1) Math.abs('-1') Math.abs('pink') | 1 1 有隐式转换 NaN |
大/小值 | Math.max(1, 99, 3) Math.max(-1, -10) Math.max(1, 99, 'pink老师') Math.max() | 99 -1 NaN -Infinity |
随机数 | Math.random() | [0,1)的随机数 |
利用Math.random()随机数可以得到两个数之间的随机整数,也可以随机选取字符;
[1,10]之间的随机整数:
function getRandom(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
console.log(getRandom(1, 10));
2.Date日期对象随机点名:
var arr = ['张三', '张三丰', '张三疯子', '李四', '李思思', 'pink老师'];
console.log(arr[getRandom(0, arr.length - 1)]);
日期对象 是一个构造函数 必须使用new 来调用创建我们的日期对象
参数格式 | 返回日期格式 |
new Date() | 无参数,返回当前日期 |
new Date(2019, 10, 1) | Fri Nov 01 2019 00:00:00 返回的是 11月 不是 10月 |
new Date('2019-10-1 8:8:8') | Tue Oct 01 2019 08:08:08 |
属性 | 返回值 |
date.getFullYear() | 返回当前日期的年 2019 |
date.getMonth() | 返回的月份小1个月,记得加1哦 |
date.getDate() | 返回的是 几号 |
date.getDay() | 周一返回 1 周六 6 但周日返回 0 |
3.数组对象// 我们写一个 2019年 5月 1日 星期三
var year = date.getFullYear();
var month = date.getMonth() + 1;
var dates = date.getDate();
var arr = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
var day = date.getDay();
console.log('今天是:' + year + '年' + month + '月' + dates + '日 ' + arr[day]);
数组对象可以用字面量或者new Array创建,都可以使用数组对象的方法;
检测是否为数组对象的方法:instanceof 或者Array.isArray()
// (1) instanceof 运算符 它可以用来检测是否为数组
var arr = [];
var obj = {};
console.log(arr instanceof Array); //true
console.log(obj instanceof Array); //false
// (2) Array.isArray(参数); H5新增的方法 ie9以上版本支持
console.log(Array.isArray(arr)); //true
console.log(Array.isArray(obj)); //false
数组的属性与方法
属性/方法 | 说明 | 返回值 |
push(参数) | 末尾添加n个元素 | 新的长的 |
pop() | 末尾删除1个元素,无参数 | 删除的元素值 |
unshift(参数) | 开头添加n个元素 | 新的长度 |
shift() | 开头删除1个元素,无参数 | 删除的元素值 |
reverse() | 颠倒元素顺序,无参数 | 新的数组 |
sort(参数) | 对元素重新排序,参数为函数 | 新的数组 |
indexOf(参数) | 查找数组中指定元素的第一个索引值 | 索引号,不存在时,为-1 |
lastIndexOf(参数) | 查找数组中指定元素最后一个索引值 | 索引号,不存在时,为-1 |
toString(arr) | 将数组转换成字符串 | 字符串 |
join(‘分隔符’) | 将数组转换成用符号分隔的字符串 | 字符串 |
concat() | 连接两个或多个数组,不影响原数组 | 新数组 |
slice(begin,end) | 截取指定区段的数组 | 新数组 |
splice(begin,n) | 从begin开始,删除n个元素 | 新数组,这里会影响原数组 |
4.字符串对象var arr1 = [13, 4, 77, 1, 7];
arr1.sort(function(a, b) {
return b - a; // 降序的顺序排列 ;return a - b为升序的顺序排列
});
console.log(arr1); // [77,13,7,4,1]
基本包装类型:js会把简单数据类型包装成复杂数据类型,这样简单数据类型也可以有属性和方法;
var str = 'andy';
console.log(str.length); //4
字符串对象的不可变性:以下代码看似str被改变了,但其实只是str指向了新的地址,之前的字符串依然存在,因此不要大量拼接字符串;
var str = 'andy';
console.log(str);
str = 'red';
console.log(str);
方法/属性 | 说明 | 返回值 |
index Of(‘字符’,begin) | 从begin开始查找指定字符 | 一个索引号,不存在时,为-1 |
lastIndexOf() | 从后往前找 | 一个索引号,不存在时,为-1 |
charAt(index) | 获取指定位置的字符 | 字符 |
charCodeAt(index) | 获取指定位置ASCII码 | ASCII码 |
str[index] | 获取指定位置的字符 | 字符,HTML5和IE8+ 支持 |
concat(str1,str2...) | 连接字符串 | |
substr(start,length) | 截取指定长度的字符串,从start开始 | |
slice(start,end) | 截取指定位置的字符串,end取不到 | |
substring(start,end) | 基本同slice | |
replace('a', 'b') | 将a替换为b | |
split('字符串中的分隔符') | 将字符转化为数组 | 新数组 |
toUpperCase() | 转换大写 | |
toLowerCase() | 转换小写 |
js中没有堆栈的概念,只是便于理解和学习;
栈:由操作系统自动释放,用于存放参数和变量等的值
堆:由程序员释放,如果程序员不释放,由垃圾回收机制回收;
简单数据类型:是存放在栈里面 里面直接开辟一个空间存放的是值
简单数据传参:
function fn(a) {
a++;
console.log(a);
}
var x = 10;
fn(x); //11
console.log(x); //10
复杂数据类型:首先在栈里面存放地址 十六进制表示 然后这个地址指向堆里面的数据
// 复杂数据类型传参
function Person(name) {
this.name = name;
}
function f1(x) { // x = p
console.log(x.name); // 2. 这个输出什么 ? 刘德华
x.name = "张学友";
console.log(x.name); // 3. 这个输出什么 ? 张学友
}
var p = new Person("刘德华");
console.log(p.name); // 1. 这个输出什么 ? 刘德华
f1(p);
console.log(p.name); // 4. 这个输出什么 ? 张学友
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
文章名称:黑马程序员-JS基础day6-JS内置对象与堆栈-创新互联
本文链接:http://abwzjs.com/article/csccdo.html