内置对象Math,Array,String,Date,堆栈,简单数据复杂数据类型

JavaScript 内置对象

Math

Math.PI; // 返回圆周率
Math.max(1, 2); // 返回最大值,非数字返回NaN, 空返回 -infinity
Math.min(1, 2); // 返回最小值,非数字返回NaN, 空返回 infinity
Math.abs(1); // 绝对值 字符串型数字会隐式转换,非数字返回 NaN
Math.floor(1.9); // 向下取整;
Math.ceil(1.1); // 向上取整;
Math.round(1.5); // 四舍五入;
Math.random(); // 随机数 0~1 不包含1
// 案例 任意两个数之间的随机值,包含最大值
function getRandom(max, min) {
    return Math.floor(Math.random() * (max - min + 1) + min);
}

Date

// date 是构造函数 要通过new来创建实例
var date = new Date(); // 默认输出当前系统时间 2020-03-25T14:45:05.347Z
var date = new Date(‘2019-10-1 8:8:8‘) // 可以设置时间注意格式 2019-10-01T00:08:08.000Z
方法 说明
getFullYear(); 获取当前年
getMonth(); 获取当前月(0 - 11)
getDate(); 获取当前日
getDay(); 获取当前 星期(星期天 0)
getHours(); 获取当前小时
getMinutes(); 获取当前分钟
getSeconds(); 获取当前秒

获取时间戳

var date = new Date();
date.valueOf();
date.getTime();
// 简单写法
var date1 = +new Date();
// H5 新增方法
Date.now();

Array

检测是否为数组

var arr = [];
console.log(arr instanceof Array);  // true false
console.log(Array.isArray(arr)); // true false  H5 新增 IE9+

添加删除数组元素

方法名 说明 返回值
arr.push(1, 2); 末尾添加一个或多个元素,修改原数组 返回新的长度
arr.pop(); 末尾删除一个元素,修改原数组 返回被删除的元素
arr.unshift(1, 2); 开头添加一个或多个元素,修改原数组 返回新的长度
arr.shift(); 开头删除一个元素,修改原数组 返回第一个被删除的元素

数组排序方法

方法 说明 返回值
reverse(); 翻转数组 已经翻转完成的数组
sort(); 数组排序,但是如果碰到2位数以上的元素需要特殊处理 已经排序完成的数组
// **以上两个方法会修改原数组**
var arr = [13, 44, 2, 1, 0];
arr.sort(function (a, b) {
	// return a - b; // 升序排列
    return b - a; // 降序排列
});

数组索引方法

方法名 说明 返回值
indexOf(); 数组中查找给定元素的第一个索引 如果存在返回索引号,不存在返回 -1
lastIndexOf(); 在数组中的最后一个索引 如果存在返回索引号,不存在返回 -1
var arr = [‘pink‘, ‘red‘, ‘bule‘, ‘red‘];
console.log(indexOf(‘red‘)); // 1 从前面开始找只找一个
console.log(lastIndexOf(‘red‘)); // 3
// 数组去重
function unique(arr) {
    var newArr = [];
    for (var i = 0; i < arr.length; i++) {
        if (newArr.indexOf(arr[i]) === -1) {
            newArr.push(arr[i]);
        }
    }
    return newArr;
}

数组转换为字符串

方法名 说明 返回值
arr.toString(); 把数组转换为字符串,逗号分隔每一项 返回一个字符串
arr.join(分隔符); 用于把数组中所有元素转换为一个字符串 返回一个字符串
方法名 说明 返回值
concat(); 连接两个或多个数组 不影响元素组 返回一个新数组
slice(); 数组截取slice(begin, end) 返回被截取项目的新数组
splice(); 数组删除 splice(第几个开始,要删除的个数) 返回被删除项目的新数组,会影响原数组
var num1 = [1, 2, 3];
var num2 = [4, 5, 6];
var num3 = [7, 8, 9];
var nums = num1.concat(num2, num3); // [1, 2, 3 ... 8, 9];
num1.splice(0, 3); // []
num1.slice(0, 2); // 返回值为新数组,num1未改变

字符串对象

基本包装类型,String Number Boolean

基本包装类型就是把简单的数据类型包装成复杂性属性类型,这样基本数据类型就有了属性和方法

var str = ‘hello‘;
// 等价于
// 创建临时变量把简单数据类型进行包装
var temp = new String(‘hello‘);
// 赋值给我们声明的字符变量
str = temp;
// 销毁临时变量
temp = null;

字符串的不可变性 字符串的重新赋值,只是改变了内存地址,原来的值并没有被删除

返回当前字符的位置

方法名 说明 返回值
indexOf(); 数组中查找给定元素的第一个索引 如果存在返回索引号,不存在返回 -1
lastIndexOf(); 在数组中的最后一个索引 如果存在返回索引号,不存在返回 -1
console.log(str.indexOf(‘2‘, 0)); // 第二个参数是从什么位置开始找(索引号)
// 案例 统计字符出现的次数以及位置
var str = ‘sdfs-dfsf-sdfsf-sdfs-fsdf-sdfs-dfs-dfs-dfs-df‘;
var index = str.indexOf(‘-‘);
var count = 0;
while (index !== -1) {
    console.log(‘索引‘ + index);
    count++;
    index = str.indexOf(‘-‘, index + 1);
}
console.log(count);

根据位置返回字符

方法 说明 返回值
str.charAt(index); 返回指定位置的字符(index 索引) str.charAt(1);
str.charCodeAt(index); 返回指定位置字符 ASCII码 str.chatCodeAt(1);
str[index] 获取指定位置字符 H5新增 IE8+
// 案例:获取字符串字符出现最大次数的值和出现次数
var str = ‘abcd-efg-hijk-lmn-opq-rst-uvwxyz-‘;
var tempObj = {};
var maxNum = 0;
var maxKey = ‘‘;
for (var i = 0; i < str.length; i++) {
  var chars = str[i];
  if (tempObj[chars]) {
    tempObj[chars]++;
  } else {
    tempObj[chars] = 1;
  }
}
for (var k in tempObj) {
  if (tempObj[k] > maxNum) {
    maxNum = tempObj[k];
    maxKey = k;
  }
}
console.log(‘最大值:‘ + maxKey + ‘ 出现次数:‘ + maxNum);

字符串操作方法

var str = ‘123‘;
str.concat(‘123‘, ‘123‘); // ‘123123123‘; 字符串拼接
str.substr(0, 2); // ‘12‘ 和数组 splice 方法类似
str.slice(0, 2); // 2 end 取不到和数组 slice 方法类似
str.substring(0, 2); // 与slice类似,但是不接受负值
var str = ‘andy‘;
str.replace(‘a‘, ‘b‘); // 字符串切割,只能切割第一个 dndy;
var str = ‘pnik, blue‘;
str.split(‘,‘); // 字符串转换数组 [‘pink‘, ‘blue‘];

简单数据类型和复杂数据类型

简单数据类型又叫基本数据类型或者值类型,复杂数据类型又叫引用类型

  • 值类型:简单数据类型/基本数据类型,在存储变量时存储的是值本身,也叫值类型

    • String Number Boolean Undefined Null(typeof 等于 Object)
  • 引用类型:复杂数据类型,在存储时变量存储的仅仅是内存地址(引用),因此叫做引用数据类型
    • 通过 new 关键字创建的对象(系统对象,自定义对象)Object,Array,Date 等

堆 栈

  • 栈(操作系统):由操作系统自动分配释放函数的参数值,局部变量的值等;简单数据类型放到栈里;例如:声明一个变量,a = 10; 此时栈开辟内存地址 a 指向这个地址
  • 堆(操作系统):存储复杂数据类型,一般由程序员分配释放,若不释放,由垃圾回收机制回收;复杂数据类型存储到堆里面;例如:声明一个数组,a = [1, 2];此时栈开辟内存,a 执行 数组的栈地址,栈地址再执行堆,真正的数组值存放在堆中;

原文地址:https://www.cnblogs.com/article-record/p/12578658.html

时间: 2024-11-01 15:35:29

内置对象Math,Array,String,Date,堆栈,简单数据复杂数据类型的相关文章

javascript 引用类型 - 内置对象(Math对象)

javascript 有很多不必显示地实例化内置对象,因为他们已经实例化了,如前面介绍的Object,Array,String. 然后还有两个单体内置对象:Global和Math. Global对象可以说是比较特殊的一个对象,因为你看不到他的存在,所有全局作用域定义的属性和函数,都是Global对象的属性. 这里学习讨论一下Math对象 Math对象和其他计算方法相比,这个对象提供的计算功能执行起来要快得多,而且还提供了辅助完成这些计算的属性和方法. min()和max() 这个可以确定求组一组

javascript内置对象一:String

<script>    //string.split("-"),以字符"-"把string拆分成一个数组.返回一个数组    //array.join("-"),以字符"-"把数组array链接成一个字符串.    var str="welcome-to-school";    console.log(str.split("-"));//Array(3) [ "we

js内置对象-Math对象

内置对象:就是js语法中,内置的一些对象 提供很多的属性和方法,可以直接用1.Math对象:提供了一系列和数学相关的属性和方法 (1)PI => Math.pI (2)min,max 求最大值和最小值 =>Math.max (); Math.min () (3)取整:ceil天花板函数,向上取整,取大的那个值 => Math.ceil() floor地板函数,向下取整,取小的那个值 => Math.floor() round四舍五入 离哪个近,取哪个 => Math.roun

js内置对象Math的属性和方法

属性: constructor 所建立对象的函数参考 prototype 能够为对象加入的属性和方法 E 欧拉常量,自然对数的底(约等于2.718) LN2 2的自然对数(约等于0.693) LN10 10的自然对数(约等于2.302) LOG2E 以2为底的e的对数.(约等于1.442) LOG10E 以10为底的e的对数(约等于0.434) PI ∏的值(约等于3.14159) SQRT1_2 1/2(0.5)的平方根(即l除以2的平方根,约等于o.707) SQRT2 2的平方根(约等于1

内置对象Math与函数Function

原文地址:https://www.cnblogs.com/zhao-ting/p/9709138.html

JSP内置对象的cookie和session实现简单登录界面

创建一个index.jsp页面 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.d

JS内置对象-String对象、Date日期对象、Array数组对象、Math对象

一.JavaScript中的所有事物都是对象:字符串.数组.数值.函数... 1.每个对象带有属性和方法 JavaScript允许自定义对象 2.自定义对象 a.定义并创建对象实例 b.使用函数来定义对象,然后创建新的对象实例 二.JS内置对象-String 1.string对象 string对象用于处理已有的字符串 字符串可以使用单引号或者双引号 2.indexOf( )  在字符串中查找字符串,如果匹配成功返回首字母所在的位置,否则返回-1 3.match() 匹配成功,返回匹配成功的数组,

作用域,预解析,对象,内置方法 Math Date Array

作用域 一段程序代码中所用到的名字并不总是有效可用的,而限定这个名字(变量)的可用性的代码范围,就是这个名字的作用域,作用域提高了逻辑程序的局部性,增强了可靠性,减少了名字冲突: JavaScript作用域(es6)之前:全局作用域,局部作用域 全局作用域:整个script标签或者是一个单独的JS文件 局部作用域(函数作用域):在函数内部就是作用域: 变量作用域 全局变量:在全局作用域下声明的变量:如果在函数内部没有声明(var)直接赋值的变量也是全局变量 num = 2; 局部变量:在函数内部

JS 内置对象 String对象

JS内置对象   String对象:字符串对象,提供了对字符串进行操作的属性和方法.   Array对象:数组对象,提供了数组操作方面的属性和方法.   Date对象:日期时间对象,可以获取系统的日期时间信息.   Boolean对象:布尔对象,一个布尔变量就是一个布尔对象.(没有可用的属性和方法)   Number对象:数值对象.一个数值变量就是一个数值对象.   Math对象:数学对象,提供了数学运算方面的属性和方法. String对象的属性和方法   length:获取字符串的长度.如:v