十. 一些对象

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学习 Ⅴ的更多相关文章

  1. JavaScript学习(一) —— 环境搭建与JavaScript初探

    1.开发环境搭建 本系列教程的开发工具,我们采用HBuilder. 可以去网上下载最新的版本,然后解压一下就能直接用了.学习JavaScript,环境搭建是非常简单的,或者说,只要你有一个浏览器,一个 ...

  2. Web编程基础--HTML、CSS、JavaScript 学习之课程作业“仿360极速浏览器新标签页”

    Web编程基础--HTML.CSS.JavaScript 学习之课程作业"仿360极速浏览器新标签页" 背景: 作为一个中专网站建设出身,之前总是做静态的HTML+CSS+DIV没 ...

  3. JavaScript学习(3):函数式编程

    在这篇文章里,我们讨论函数式编程. 什么是函数式编程?根据百度百科的描述,“函数式编程是种编程典范,它将电脑运算视为函数的计算.函数编程语言最重要的基础是 λ 演算(lambda calculus). ...

  4. JavaScript学习(2):对象、集合以及错误处理

    在这篇文章里,我们讨论一下JavaScript中的对象.数组以及错误处理. 1. 对象 对象是JavaScript中的一种基本类型,它内部包含一些属性,我们可以对这些属性进行增删操作. 1.1 属性 ...

  5. JavaScript学习13 JavaScript中的继承

    JavaScript学习13 JavaScript中的继承 继承第一种方式:对象冒充 <script type="text/javascript"> //继承第一种方式 ...

  6. JavaScript学习12 JS中定义对象的几种方式

    JavaScript学习12 JS中定义对象的几种方式 JavaScript中没有类的概念,只有对象. 在JavaScript中定义对象可以采用以下几种方式: 1.基于已有对象扩充其属性和方法 2.工 ...

  7. JavaScript学习11 数组排序实例

    JavaScript学习11 数组排序实例 数组声明 关于数组对象的声明,以前说过:http://www.cnblogs.com/mengdd/p/3680649.html 数组声明的一种方式: va ...

  8. JavaScript学习10 JS数据类型、强制类型转换和对象属性

    JavaScript学习10 JS数据类型.强制类型转换和对象属性 JavaScript数据类型 JavaScript中有五种原始数据类型:Undefined.Null.Boolean.Number以 ...

  9. JavaScript学习09 函数本质及Function对象深入探索

    JavaScript学习09 函数本质及Function对象深入探索 在JavaScript中,函数function就是对象. JS中没有方法重载 在JavaScript中,没有方法(函数)重载的概念 ...

  10. JavaScript学习08 Cookie对象

    JavaScript学习08 Cookie对象 JavaScript Cookie Cookie对象: Cookie是一种以文件的形式保存在客户端硬盘的Cookies文件夹中的用户数据信息(Cooki ...

随机推荐

  1. CSS学习:overflow:hidden解决溢出,坍塌,清除浮动

    overflow:hidden是overflow属性的一个神奇用法,它可以帮助我们隐藏溢出的元素,清除浮动和解除坍塌. CSS样式: .container{ background-color: bla ...

  2. Linux系统命令详解

    目录 1. su 1.1. su命令中passwd的自动输入 2. sshpass 3. locate/mlocate 4. top/htop 5. lftp 6. kill/killall 1. s ...

  3. 使用nodejs的puppeteer库爬取瓜子二手车网站

    const puppeteer = require('puppeteer'); (async () => { const fs = require("fs"); const ...

  4. zabbix服务的部署

    1.zabbix的介绍 zabbix是一个基于WEB界面分布式系统监视以及网络监视功能的企业的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并且提供灵活的通知机制以让系统管 ...

  5. 听说你的资源被盗用了,那你知道 Nginx 怎么防盗链吗?

    上一篇文章讲了 Nginx 中的变量和运行原理,下面就来说一个主要提供变量并修改变量的值的模块,也就是我们要讲的防盗链模块:referer 模块. 简单有效的防盗链手段 场景 如果做过个人站点的同学, ...

  6. [每日一题2020.06.13]leetcode #739 #15 单调栈 双指针查找

    739 每日温度 ( 单调栈 ) 题目 : https://leetcode-cn.com/problems/daily-temperatures/ 题意 : 找到数组每一个元素之后第一个大于它的元素 ...

  7. Spring:BeanDefinition&PostProcessor不了解一下吗?

    水稻:这两天看了BeanDefinition和BeanFactoryPostProcessor还有BeanPostProcessor的源码.要不要了解一下 菜瓜:six six six,大佬请讲 水稻 ...

  8. pycharm 配置 git 方法

    1.打开pycharm ,点击 file——Default-setting——version control 2.配置github账号密码 3.Path to Git executable中填写git ...

  9. 如何开发一个自己的npm包

    目录 一.初始化npm包 二.新建自己的工具类 三.新建入口文件index.js 四.编写单元测试 五.登录仓库 六.发布包 七.安装使用 八.删除包 一.初始化npm包 npm init 运行输入包 ...

  10. 在tp5.1中获取所有控制器的文件名和所有控制器下的方法名

    我在这块做的是下拉框改变控制器然后ajax去调用获取方法 上代码 private function redController(){//获取当前控制器目录下所有的文件名 $arr=scandir('. ...