JavaScript笔记(五)

API:
查找关键词:4种:
1.查找固定关键词的位置:
var i=str.indexOf("关键词",fromi);
var i=str.lastIndexOf("关键词",fromi);
问题:不支持正则
2.判断有没有包含和正则匹配的关键词:
var i=str.search(reg);
问题:永远从0位置开始,始终只能找第一个
3.获得所有关键词内容:
var kwords=str.match(reg); //加g
问题:无法获得每个关键词的位置
4.即找每个关键词的内容,又找位置。
var arr=reg.exec(str);
在str中找下*一个*关键词的内容和位置,保存在数组arr中。
补:reg对象的lastIndex属性:
表示下次从lastIndex位置开始匹配
默认为0
原理:
1.用reg去str中匹配一个关键词
2.将本次找到的关键词内容,放在arr的第一个元素中,同时将关键词的位置,记录在arr.index属性中。
3.自动将reg的lastIndex属性调整为当前位置之后。
返回值:
如果找到:同match不加g时
arr[0]->本次找到的完整关键词
如果正则中有分组:
arr[1]->获得第1个分组的子内容
arr.index->本次关键词的位置
没找到:返回null
如何使用: 用循环,反复调用exec,直到返回null为止。

正则:
贪婪模式:默认匹配尽量长的符合规则的字字符串。
懒惰模式:让正则仅匹配最短的符合规则的字符串。
贪婪改懒惰: .*? .+?

验证格式:
var bool=reg.test(str);
验证str是否满足reg的格式要求。
满足,返回true,不满足返回false
强调: 一般验证都是要从头到尾完整匹配
都要前加^,后加$。

2. Math:专门封装数学计算所用的API或常量
何时使用:只要执行数学计算
创建: Math不能new!
API:所有API都用Math直接调用
1. 取整:
1. 上取整: 只要小数点超过,就取下一个整数
num=Math.ceil(num)
2. 下取整: 舍弃小数部分
num=Math.floor(num);只能对纯数字下取整
vs parseInt(str):
转换为number
去掉结尾的非数字字符
舍弃小数部分
3. 四舍五入取整:
num=Math.round(num);
强调:只能取整,不能设定小数位数
vs n.toFixed(d)
参数:round无法指定小数位置,只能取整
toFixed(d)可指定小数位数,可按任意小数位数四舍五入。
返回值: round返回num,可直接参与算术计算。
toFixed(d)返回str,参与+法计算时,要提前类型转化。
强调:小心舍入误差:

2. 乘方和开平方:
Math.pow(底数,幂)
Math.sqrt(num) 开平方

Math
最大值和最小值:
Math.max(值1,值2,...)
Math.min(值1,值2,...)
强调: max和min不支持数组类型的参数
无法获得数组中的最大值
解决:Math.max.apply(null,arr);
获取arr数组中的最大值

随机数:
Math.random(): 0<=r<1
公式:从任意min~max之间去一个随机整数
parseInt(Math.random()*(max-min+1)+min)
如果从0~max之间
parseInt(Math.random()*(max+1))

2.Date:
什么是:封装一个时间
提供操作时间的API
何时使用: 只要保存时间或日期,以及对时间进行操作时。
创建: 3种:
1. 创建日期对象,保存当前时间:
var now=new Date();
强调:now封装的是客户端本地时间。
2. 创建日期对象,保存自定义时间:2种
var date=
new Date("yyyy/MM/dd hh:mm:ss");
var date=
new Date(yyyy,MM-1,dd,hh,mm,ss);
说明:1. 如果不关心时分秒,可省略
2. 如果使用数字设置时间,月份要-1
3. 复制日期对象:
为什么?因为日期的计算,都是直接修改原日期对象。
何时复制: 如果希望同时保留开始时间和截止时间时,都要先复制,再计算。
如何复制:
var date1=new Date();
var date2=new Date(date1.getTime());
说明,.getTime()可省略
原理: 日期对象中保存的其实是一个巨大的毫秒数。是1970年1月1日0点至今的毫秒数。

API:
分量:FullYear Month Date Day
Hours Minutes Seconds Milliseconds
1.每个分量都有一对儿getXXX/setXXX方法
其中,getXXX方法负责获取指定分量的值
setXXX方法负责修改指定分量的值
例外:星期Day没有setDay方法
2.命名: 年月日星期,没有s结尾
时分秒毫秒,都有s结尾
3.取值范围(返回值):
只有月中的日Date 从1~31结束
其余都是从0~进制-1结束
*Month: 0~11 需要修正: 计算机中的月份,比现实中的月份少1
Date: 1~31 不用修正
Day: 0~6 不用修正: 星期日是第一天0
Hours: 0~23 不用修正
Minutes/Seconds: 0~59 不用修改

日期计算:
1. 两个日期对象可相减:得到毫秒差
2. 对任意分量做加减:3步:
1.取分量: var n=date.getXXX();
2.做加减: n+=x;
3.放回去: date.setXXX(n);
说明:1. setXXX方法可自动调整时间
2. setXXX方法直接修改原日期
简版公式:date.setXXX(date.getXXX()+n)

日期转字符串:
date.toGMTString();转为中国标准时间格式
date.toLocaleString();转为当地时间格式
date.toLocaleDateString();仅保留日期
date.toLocaleTimeString();仅保留时间

时间: 2024-10-29 22:01:25

JavaScript笔记(五)的相关文章

JavaScript笔记五:函数表达式

1.函数表达式 var function = function() { //函数体 }; 2.递归 function factorial(num) { if(num<=1){ return 1;  } else {return num*factorial(num-1);} } arguments.callee是一个指向正在执行函数的指针,因此可以用它实现递归. function factorial(num) { if(num<=1){ return 1;  } else {return num

JavaScript笔记之Function

一.函数定义 (1)使用function declaration 格式:function functionName(parameters) { function body } 注:此种方式声明的函数作用域是全局的,即在声明之前可以调用 (2)使用function expression 格式:var name = function (parameters) { function body }; 注:与(1)不同,在声明之前不可以调用 (3)使用function constructor() 格式:v

WEB前端学习笔记 五

接web前端学习笔记第四篇,此篇为web学习笔记 五,在此感谢您的采集和转发,但请注明文章出自网知博学. 2.0.3  html标签的属性格式 现在我们知道了两个双标签分别是,标题标签:<h1> - <h6>.和段落标签:<p></p>还知道了一个换行的单标签:<br />,现在我们给<p></p>标签添加一个属性,来改变段落是右对齐,还是左对齐,还是居中. 如上图,<p>标签中的 align(中文就是排列的意

jQuery源码学习笔记五 六 七 八 转

jQuery源码学习笔记五 六 七 八 转 Js代码   <p>在正式深入jQuery的核心功能选择器之前,还有一些方法,基本都是数组方法,用于遴选更具体的需求,如获得某个元素的所有祖选元素啦,等等.接着是其缓存机制data.</p> <pre class="brush:javascript;gutter:false;toolbar:false"> //@author  司徒正美|なさみ|cheng http://www.cnblogs.com/ru

Caliburn.Micro学习笔记(五)----协同IResult

Caliburn.Micro学习笔记(五)----协同IResult 今天说一下协同IResult 看一下IResult接口 /// <summary> /// Allows custom code to execute after the return of a action. /// </summary> public interface IResult { /// <summary> /// Executes the result using the specif

5. 蛤蟆的计算机组成原理笔记五输入输出系统

5. 蛤蟆的计算机组成原理笔记五输入输出系统 本篇名言:"质朴却比巧妙的言辞更能打动我的心. --莎士比亚" 欢迎转载,转载请标明出:http://blog.csdn.net/notbaron/article/details/48037245 1.  输入输出系统 1.1             I/O 软件 (1) I/O 指令 CPU 指令的一部分 (2) 通道指令 通道自身的指令 1.2             I/O设备与主机信息传送的控制方式 1. 程序查询方式 2. 程序中

angular学习笔记(五)-阶乘计算实例(1)

<!DOCTYPE html> <html ng-app> <head> <title>2.3.2计算阶乘实例1</title> <meta charset="utf-8"> <script src="../angular.js"></script> <script src="script.js"></script> </

ollydbg使用笔记(五)

OllyDbg 使用笔记 (五) 参考 书:<加密与解密> 视频:小甲鱼 解密系列 视频 pixtopainbook安装包 下载地址  http://pan.baidu.com/s/191ArG pixtopainbook 破解 pixtopainbook是一个电话簿软件,未注册版本,最多只能添加3个组,每个组最多添加4个人. 去除添加人数跟组数限制 ollydbg 加载 ,按F9运行. 如果OD暂停,在下面出现"异常 E06D7363 - 使用Shift+F7/F8/F9来忽略程序

javascript笔记(二)

concat() 连接多个字符串,返回合并后的字符串. 1 var s1="a"; 2 var s2="b"; 3 var s3="c"; 4 5 console.log(s1.concat(s2,s3));//abc concat() 方法的结果等同于:result = s1 + s2 + ... + sN.如果有不是字符串的参数,则它们在连接之前将首先被转换为字符串. 数组中的concat():将参数添加为数组的元素,返回新的数组. 1 va

NLTK学习笔记(五):分类和标注词汇

[TOC] 词性标注器 之后的很多工作都需要标注完的词汇.nltk自带英文标注器pos_tag import nltk text = nltk.word_tokenize("And now for something compleyely difference") print(text) print(nltk.pos_tag(text)) 标注语料库 表示已经标注的标识符:nltk.tag.str2tuple('word/类型') text = "The/AT grand/J