成都网站建设设计

将想法与焦点和您一起共享

黑马程序员-JS基础day6-JS内置对象与堆栈-创新互联

内置对象

js中自带的一些对象,并封装了常用的属性和方法,帮助我们快速开发;

目前成都创新互联已为近1000家的企业提供了网站建设、域名、虚拟空间、网站托管维护、企业网站设计、博望网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。1.Math对象

Math数学对象不是构造函数 ,所以我们不需要new 调用,而是直接使用里面的属性和方法即可;

属性代码返回值
圆周率Math.PI3.141592653589793
向下取整

Math.floor(1.1)
Math.floor(1.9)                     

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
2
2
-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));

随机点名:

var arr = ['张三', '张三丰', '张三疯子', '李四', '李思思', 'pink老师'];

  console.log(arr[getRandom(0, arr.length - 1)]);

2.Date日期对象

日期对象 是一个构造函数 必须使用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

 // 我们写一个 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]);

3.数组对象

数组对象可以用字面量或者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个元素

新数组,这里会影响原数组

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]

4.字符串对象

基本包装类型: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://chengdu.cdxwcx.cn/article/csccdo.html