JavaScript学习 Ⅴ
十. 一些对象
Date 对象
Date对象用来表示一个时间
创建Date对象
如果直接使用构造函数创建一个Date对象,则会封装为当前代码执行的时间
var d = new Date();
创建一个指定的时间对象,需要在构造函数中传递一个表示时间的字符串作为参数
格式 :月/日/年 时:分:秒
var d1 = new Date("12/31/1997 11:11:11");
Date对象方法
var now = new Date()
var day = now.getDate();
console.log(day);
getDate()
:获取当前时间对象是当月第几天
getDay()
:获取当前时间对象是周几 0~6 周日~周六
getMonth()
:获取当前时间对象是几月 0~11 一月~十二月
getFullYear()
:获取当前时间对象的年份
getTime()
:获取当前时间对象的时间戳
now()
:获取当前时间戳,可以用于测试代码执行的性能
Math 对象
Math和其他对象不同,它不是一个构造函数,属于一个工具类,不用创建对象。
封装了数学运算的相关的属性和方法。
Math.abs(num)
:绝对值
Math.ceil(num)
:上舍入(向上取整)
Math.floor(num)
:下舍入(向下取整)
Math.round(num)
:四舍五入
Math.random(num)
:生成0~1之间的随机数
生成 x~y之间的随机数:Math.round(Math.random()*(y-x)+x)
Math.max(num1, num2)
:获取多个数之中的最大值
Math.min(num1, num2)
:获取多个数之中的最小值
Math.pow(x, y)
:获取x的y次幂
Math.sprt()
:开方
十一. 包装类
JS提供了三个包装类,通过包装类可以将基本数据类型转换为对象,
String()
:将基本数据类型字符串转换为String对象
Number()
:将基本数据类型数字转换为Number对象
Boolean()
:将基本数据类型布尔值转换为Boolean对象
注意,在实际应用中基本不会使用基本数据类型对象,如果使用基本数据类型对象,在做比较时可能会带来非预期的结果。
创建对象
var num = new Number(3);
var str = new String("hello");
var bool = new Boolean(true);
var num1 = new Number(3);
console.log(num==num1); // false
var b = new Boolean(false); // 对象转换为bool时,总是true
if (b){
alert("成功运行");
}
当我们对一些基本数据类型的值去调用相应的属性和方法时,浏览器会临时使用包装类将其转换为对象,然后在调用。调用完后,将其变回基本数据类型。(自动装箱与自动拆箱)
十二. 字符串
字符串底层是以字符数组的形式保存的,可以使用index索引
内建属性 length 可返回字符串的长度:
var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sln = txt.length;
对长字符串换行的最安全做法(但是有点慢)是使用字符串加法:
document.getElementById("demo").innerHTML = "Hello" +
"Kitty!";
charAt()
:可以返回字符串中指定位置的字符
charCodeAt()
:可以返回字符串中指定位置的字符Unicode编码
fromCharCode()
:可以根据字符编码去获取字符
str = "hello world";
var result = str.charAt(6);
var result = str.charCodeAt(6);
var result = String.fromCharCode(72);
indexOf()
查找字符串中的字符串
indexOf() 方法返回字符串中指定文本首次出现的索引(位置),lastIndexOf() 方法返回指定文本在字符串中最后一次出现的索引:
var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("China");
var pos = str.indexOf("China", 18);
两种方法都接受作为检索起始位置的第二个参数。 lastIndexOf()
方法向后进行检索(从尾到头),这意味着:假如第二个参数是 50,则从位置 50 开始检索,直到字符串的起点。
search()
检索字符串中的字符串
search() 方法搜索特定值的字符串,并返回匹配的位置,如果没有搜索到则返回-1:
var str = "The full name of China is the People's Republic of China.";
var pos = str.search("locate");
var pos = str.search(/a[bef]c/); // search 只会查找第一个,即使设置全局匹配也无法生效。
比较 indexOf() 与 search()
这两种方法是不相等的。区别在于:
- search() 方法无法设置第二个开始位置参数。
- indexOf() 方法无法设置更强大的搜索值(正则表达式)。
提取部分字符串
有三种提取部分字符串的方法:
- slice(start, end)
- substring(start, end)
- substr(start, length)
slice() 方法
slice() 提取字符串的某个部分并在新字符串中返回被提取的部分。
该方法设置两个参数:起始索引(开始位置),终止索引(结束位置)。
这个例子裁剪字符串中位置 7 到位置 13 的片段:
var str = "Apple, Banana, Mango";
var res = str.slice(7,13);
res 的结果是:Banana
substring() 类似于 slice()。
不同之处在于 substring() 无法接受负的索引,而且可以动态调整两个参数的顺序
substr() 类似于 slice()。
不同之处在于第二个参数规定被提取部分的长度。
var str = "Apple, Banana, Mango";
var res = str.substr(7,6);
res 的结果是:Banana
var str = "Apple, Banana, Mango";
var res = str.substr(-5);
res 的结果是:Mango
replace()
替换字符串的内容
replace()
方法用另一个值替换在字符串中指定的值:
str = "Please visit Microsoft!";
var n = str.replace("Microsoft", "W3School");
replace()
方法不会改变调用它的字符串。它返回的是新字符串。
默认地,replace()
只替换首个匹配。
如需执行大小写不敏感的替换,请使用正则表达式i
(大小写不敏感)
str = "Please visit Microsoft!";
var n = str.replace(/MICROSOFT/i, "W3School");
请注意正则表达式不带引号。
如需替换所有匹配,请使用正则表达式的g
标志(用于全局搜索)
str = "Please visit Microsoft and Microsoft!";
var n = str.replace(/Microsoft/g, "W3School");
toUpperCase()
转换为大写和小写
通过 toUpperCase() 把字符串转换为大写:
var text1 = "Hello World!"; // 字符串
var text2 = text1.toUpperCase(); // text2 是被转换为大写的 text1
通过 toLowerCase() 把字符串转换为小写:
var text1 = "Hello World!"; // 字符串
var text2 = text1.toLowerCase(); // text2 是被转换为小写的 text1
concat()
concat() 连接两个或多个字符串
concat() 方法可用于代替加运算符
trim()
trim() 方法删除字符串两端的空白符
split()
把字符串转换为数组
可以通过 split() 将字符串转换为数组:
var txt = "a,b,c,d,e"; // 字符串
txt.split(","); // 用逗号分隔
txt.split(" "); // 用空格分隔
txt.split("|"); // 用竖线分隔
如果省略分隔符,被返回的数组将包含 index [0] 中的整个字符串。
如果分隔符是 "",被返回的数组将是间隔单个字符的数组:
var txt = "Hello"; // 字符串
txt.split(""); // 分隔为字符
可以使用正则表达式进行拆分:
var txt = "1a2b3c4d5";
var result = txt.split(/[A-z]/); // 即使不指定全局匹配,也会自动匹配全局
match()
根据正则表达式,从一个字符串中将符合要求的内容提取出来,默认情况下match只会找到第一个符合要求的内容,找到后就停止检索。设置正则表达式为全局匹配模式,就会匹配到所有的内容。
var str = "1a2b3c4d5e6f7";
result = str.match(/[a-z]/g);
JavaScript学习 Ⅴ的更多相关文章
- JavaScript学习(一) —— 环境搭建与JavaScript初探
1.开发环境搭建 本系列教程的开发工具,我们采用HBuilder. 可以去网上下载最新的版本,然后解压一下就能直接用了.学习JavaScript,环境搭建是非常简单的,或者说,只要你有一个浏览器,一个 ...
- Web编程基础--HTML、CSS、JavaScript 学习之课程作业“仿360极速浏览器新标签页”
Web编程基础--HTML.CSS.JavaScript 学习之课程作业"仿360极速浏览器新标签页" 背景: 作为一个中专网站建设出身,之前总是做静态的HTML+CSS+DIV没 ...
- JavaScript学习(3):函数式编程
在这篇文章里,我们讨论函数式编程. 什么是函数式编程?根据百度百科的描述,“函数式编程是种编程典范,它将电脑运算视为函数的计算.函数编程语言最重要的基础是 λ 演算(lambda calculus). ...
- JavaScript学习(2):对象、集合以及错误处理
在这篇文章里,我们讨论一下JavaScript中的对象.数组以及错误处理. 1. 对象 对象是JavaScript中的一种基本类型,它内部包含一些属性,我们可以对这些属性进行增删操作. 1.1 属性 ...
- JavaScript学习13 JavaScript中的继承
JavaScript学习13 JavaScript中的继承 继承第一种方式:对象冒充 <script type="text/javascript"> //继承第一种方式 ...
- JavaScript学习12 JS中定义对象的几种方式
JavaScript学习12 JS中定义对象的几种方式 JavaScript中没有类的概念,只有对象. 在JavaScript中定义对象可以采用以下几种方式: 1.基于已有对象扩充其属性和方法 2.工 ...
- JavaScript学习11 数组排序实例
JavaScript学习11 数组排序实例 数组声明 关于数组对象的声明,以前说过:http://www.cnblogs.com/mengdd/p/3680649.html 数组声明的一种方式: va ...
- JavaScript学习10 JS数据类型、强制类型转换和对象属性
JavaScript学习10 JS数据类型.强制类型转换和对象属性 JavaScript数据类型 JavaScript中有五种原始数据类型:Undefined.Null.Boolean.Number以 ...
- JavaScript学习09 函数本质及Function对象深入探索
JavaScript学习09 函数本质及Function对象深入探索 在JavaScript中,函数function就是对象. JS中没有方法重载 在JavaScript中,没有方法(函数)重载的概念 ...
- JavaScript学习08 Cookie对象
JavaScript学习08 Cookie对象 JavaScript Cookie Cookie对象: Cookie是一种以文件的形式保存在客户端硬盘的Cookies文件夹中的用户数据信息(Cooki ...
随机推荐
- 一行代码让你的python运行速度提高100倍
转自:https://www.cnblogs.com/xihuineng/p/10630116.html 加上之后运行速度快了十倍,我的天呐. python一直被病垢运行速度太慢,但是实际上pytho ...
- 如何 SSH 到 Linux 服务器里的特定目录及执行命令?
你是不是有遇到过这样的场景?使用 SSH 命令进入到服务器,然后再用 cd 命令进入到对应目录,再继续进行你的工作. 这种操作对于新手来讲特别常见,良许之前也是这样.在本文,老司机将带你来进行更高效的 ...
- 在Java虚拟机上班是一种怎样的体验?
228 人赞同了该回答 利益相关,匿了! JVM公司里面线程众多,派系林立,尤其是执行引擎那波人,因为是核心部门,经常diss别的部门. 428 人赞同了该回答 不请自来. 其实在JVM工作没有你们想 ...
- Java 14带来了许多新功能
本文是作者翻译自java magazine的文章,我也将回持续的关注java的最新消息,即时和大家分享.如有翻译不准确的地方,欢迎大家留言,我将第一时间修改. Java 14包含比前两个发行版更多 ...
- 在运行时生成C# .NET类
本文译自:Generating C# .NET Classes at Runtime 作者:WedPort 在我的C#职业生涯中,有几次我不得不在运行时生成新的类型.希望把它写下来能帮助有相同应 ...
- 【Flutter实战】定位装饰权重组件及柱状图案例
老孟导读:Flutter中有这么一类组件,用于定位.装饰.控制子组件,比如 Container (定位.装饰).Expanded (扩展).SizedBox (固定尺寸).AspectRatio (宽 ...
- JavaWeb网上图书商城完整项目--day02-6.ajax校验功能之页面实现
1 .现在我们要在regist.js中实现ajax的功能,使用用户名到后台查询是否注册,邮箱是否到后台注册,验证码是否正确的功能 我们来看regist.js的代码 //该函数在html文档加载完成之后 ...
- base64格式的图片上传阿里云
base64格式的图片上传阿里云 上传图片的时候,除了普通的图片上传,还有一张图片信息是以base64格式发送到后台的. 后台接受base64格式的图片,上传至阿里云代码:(主要是将base64转化成 ...
- 入门大数据---HBase Shell命令操作
学习方法 可以参考官方文档的简单示例来 点击查看 可以直接在控制台使用help命令查看 例如直接使用help命令: 从上图可以看到,表结构的操作,表数据的操作都展示了.接下来我们可以针对具体的命令使用 ...
- Oracel中coalesce函数的用法
1.coalesce函数的用法 1.1 取出第一个不为空的列的数据.