【前端】JavaScript基础(二)
目录
一、内置对象
Math对象
Data日期
数组对象
字符串对象
字符串的不可变
根据字符返回位置
根据位置返回字符(重点)
字符串基本方法(重点)
字符串的替换与转换
二、简单类型和复杂类型
简单类型传参
复杂类型传参
一、内置对象
JavaScript中的对象分为3种:自定义对象、内置对象、浏览器对象。
内置对象:JS语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能(属性和方法)。
JavaScript提供了多个内置对象:Math、Date、Array、String等。
查阅文档:MDN 网页文档 (mozilla.org)
Math对象
Math数学对象不是一个构造函数,所有我们不需要new来调用。
1.绝对值
Math.abs('-1');//隐式转换,会把字符型-1转换成数字型。
2.三个取整方法
Math.floor(); //向下取整 往最小取值Math.ceil(); //向上取整 往最大取值Math.round(); //四舍五入,.5往大了取,如-1.5取-1
3.随机数方法
Math.random(); //返回一个大于等于0小于1的随机小数,这个方法里面不跟参数
Math.floor(Math.random()*(max-min+1))+min;//得到两个数之间的随机整数
Data日期
Data()日期对象是一个构造函数,必须使用new来调用创建我们的日期对象。
var date = new Date();console.log(date);
- 如果没有参数,返回当前系统的当前时间
- 参数常用的写法,数字型:2022,11,7或者字符串型'2022-11-7 8:8:8'
日期格式化
注意:返回的月份小1个月,月份要+1。
获取日期的总的毫秒形式(时间戳):
1.通过valueOf()
//获取距离1970年1月1日过去了多少毫秒数var date = new Date();console.log(date.valueOf());
2.通过getTime()
//获取距离1970年1月1日过去了多少毫秒数var date = new Date();console.log(date.getTime());
3.简单的写法(最常用的写法)
var date1 = +new Date();
4.H5新增的方法
console.log(Date.now());
数组对象
创建数组:
1.利用数组字面量
var arr = [1,2,3];
2.利用new Arry()
var arr = new Array();//创建了一个空的数组var arr1=new Array(2);//这个2表示数组的长度为2,里面有两个空的数组元素var arr2=new Array(2,3);//等价于[2,3]表示里面有2个数组元素是2和3
检测是否为数组
1.instanceof检测
var arr = [];console.log(arr instanceof Array);
2.H5新增方法,ie9以上版本才可以
Array.isArray(参数);
添加删除数组元素的方法
数组排序
var arr1 = [13, 4, 77, 1, 7];arr1.sort(function (a, b) {return a - b;//升序排列return b - a;//降序排列});
数组索引方法
数组转换成字符串
字符串对象
基本包装类型:就是把简单数据类型包装成为复杂数据类型,这个简单数据类型就有了属性和方法。
JavaScript给String、Number和Boolean提供了基本包装类型。
var str = 'andy';console.log(str.length);//1.把简单数据类型包装为复杂数据类型var temp = new String('andy');//2.把临时变量的值给strstr = temp;//3.销毁这个临时变量temp = null;
字符串的不可变
指的是里面的值不可变,虽然看上去可以改变内容,但其实是地址变了,内存中新开辟了一个内存空间。
因为字符串的不可变,所以不要大量的拼接字符串
根据字符返回位置
字符串所有的方法,都不会修改字符串本身(字符串是不可变的),操作完成会返回一个新的字符串。
根据位置返回字符(重点)
字符串基本方法(重点)
字符串的替换与转换
//1.替换字符replace('被替换的字符','替换为的字符') 它只会替换第一个字符串var str = 'andyandy';console.log(str.replace('a', 'b'));//有一个字符串'abcoefoxyozzopp'将里面所以的o替换为*var str1 = 'abcoefoxyozzopp';while (str1.indexOf('o') != -1) {str1 = str1.replace('o', '*');}console.log(str1);//2.字符转换为数组 split('分隔符');jion将数组转换成字符串var str2 = 'red,pink,blue';console.log(str2.split(','));
二、简单类型和复杂类型
简单类型又叫做基本数据类型或者值类型,复杂类型又叫做引用类型。
- 值类型:简单数据类型/基本数据类型,在存储时变量中存储的就是值本身,因此叫做值类型 string,number,Boolean,undefined,null
简单数据类型null返回的是一个空的对象object,如果有个变量打算存储对象,但是暂时没想好放什么,这个时候就用null
- 引用类型:复杂数据类型,在存储时变量中存储的仅仅是地址(引用),因此叫做引用数据类型。通过new关键字创建的对象(系统对象、自定义对象),如Object、Array、Date等
简单数据类型存放在栈里面,里面直接开辟一个空间存放的是值。
复杂数据类型存放在堆里面,首先在栈里面存放地址,用十六进制表示,然后这个地址指向堆里面的数据。
注意:JavaScript中没有堆栈的概念。
简单类型传参
函数的形参也可以看做是一个变量,当我们把一个值类型变量作为参数传给函数的形参时,其实是把变量在栈空间里的值复制了一份给形参,那么在方法内部对相残做任何修改,都不会影响到外部变量。
复杂类型传参
函数参数也可以看做是一个变量,我们把引用类型变量传给形参时,其实是把变量在栈空间里保存的堆地址复制给了形参,形参和实参其实保存的是同一个堆地址,所以操作的是同一个对象。
【前端】JavaScript基础(二)相关推荐
- Web前端-JavaScript基础教程上
Web前端-JavaScript基础教程 将放入菜单栏中,便于阅读! JavaScript是web前端开发的编程语言,大多数网站都使用到了JavaScript,所以我们要进行学习,JavaScript ...
- Web前端-JavaScript基础教程下
Web前端-JavaScript基础教程下 <script>有6个属性: async对外部脚本有效,可以用来异步操作,下载东西,不妨碍其他操作. charset为src属性指定字符集. d ...
- 前端---JavaScript基础4
文章目录 前端---JavaScript基础3 call&apply 原型链 原型链操作 例子:按钮组件封装:(类似于Bootstrsp里的按钮组件封装) 前端-JavaScript基础3 c ...
- 前端---JavaScript基础3
文章目录 前端---JavaScript基础3 普通对象与函数对象 原型及属性判断 构造函数继承 原型继承 组合继承 寄生组合式继承 前端-JavaScript基础3 普通对象与函数对象 原型及属性判 ...
- 前端---JavaScript基础2
文章目录 前端---JavaScript基础2 对象类型判断 call函数 对象属性操作 深拷贝方法 前端-JavaScript基础2 重构以下代码:(以面向对象的方式) 重构后:(其中this指针问 ...
- 前端---JavaScript基础1
文章目录 前端---JavaScript基础1 数据类型 面向对象 对象创建方式 对象类型判断 前端-JavaScript基础1 JS是 解释型语言:跨平台 慢 编译型语言:不能跨平台 快 数据类型 ...
- 菜鸟学前端--javascript基础
在学习过css相关的知识,有了前端工程师的一些基础知识.但要较好的掌握前端,必须要学习好javascript的知识. 下面将从基本语法.变量.关键字.保留字.语句.函数.BOM等角度阐释. 一.基本语 ...
- 前端JavaScript基础知识点
JavaScript基础 阶段说明 JavaScript基础 Web API JavaScript高级 ##第一天重点内容 变量的声明及使用 数据类型 类型转换 运算符 JavaScript的组成 E ...
- 前端JavaScript基础
目录 JavaScript基础 1:JS概述 1.1:历史: 1.2:现状: 1.3:特点: 1.4:应用场景 2.搭建开发环境 2.1:浏览器: 2.2:服务器端 2.3:运行JS 3.语法规范 4 ...
- 【JavaScript基础-二维数组】JavaScript修改二维数组的某个元素时,其上下元素也受到影响
JavaScript修改二维数组的某个元素时,其上下元素也受到影响 发布:2021年8月15日18:54:56 前言 在研究背包问题时,一开始往往会用二维数组的形式来描述,这样会便于理解.但是,我在操 ...
最新文章
- 把激光雷达放在iPad上是怎样的体验?看到“测距仪”App的效果我震惊了
- linux——系统日志的信息、采集、查看、保存
- JZOJ 5638. 【NOI2018模拟4.8】IIIDX
- 【Python】Python之函数讲解
- 【搜索引擎基础知识1】搜索引擎的技术架构
- 软件测试qa等级考核制度,QA质量规范
- 如何查看服务器数据库型号,如何查看服务器里的数据库
- SAP License:SAP中的成本核算模型(调侃版)
- networkx怎么显示图_如何将标签添加到networkx图形中的节点?
- 2.2 Zend_Controller 基础
- 设计一个服务器资源管理系统,基于虚拟化技术的服务器资源管理系统的设计与实现.pdf...
- 计算机基础与程序设计
- 为什么安装了python桌面没有图标怎嘛办_安装了软件找不到图标怎么办_电脑软件安装了为什么不见图标...
- stm32h750电路_STM32H750开发板
- rangecoder
- echarts世界地图中英文转换
- ftp服务器空文件夹不让删,FTP不能删除(修改)文件夹的问题?(转载)
- SSD硬盘SATA接口和M.2接口区别(详细)总结
- 如何让你的小刺猬顺刺
- Excel如何设置下拉列表
热门文章
- 赤壁游戏服务器获取玩家角色信息失败,赤壁进不去呀`````没服务器````
- 微信图片过期怎么办?如何查看微信过期图片?3步即可
- 想提高团队技术,来试试这个套路! (作为个人提高的套路也行呢)
- 图灵奖得主Bengio:深度学习不会被取代,我想让AI会推理、计划和想象
- DBeaver导出结果集为CSV文件,数据用引号括起来
- 【学习笔记】第三章 Python在高等数学和线性代数中的应用
- ps aux 中的 VSZ 代表什么意思,RSS 代表什么意思
- 高等数学(第七版)同济大学 习题3-7 个人解答
- 知道Unicode表的数字,怎么用java推出相对应的日文?
- Django电商项目(八)订单生成、悲观锁、乐观锁