Javascript基础学习20问
Posted liuguofu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javascript基础学习20问相关的知识,希望对你有一定的参考价值。
1.遍历字符串不用加等于 要用数组代替 (性能优化) 子字符串放入数组 join拼接,+“ ”代替toString。
2.字符串三大操作: (1)str.indexOf()只找第一个关键字 只从位置0开始查找
indexOf (“关键字”,“from”)、lastIndexOf(“关键字”,“from”)[两 种遍历方法index返回结果一样]
(2)str.slice(start,end+1) [支持正负参数]、str.substring()用法 跟slice一样只是不支持负数参数、str.substr(start,count)
(3)str.split("分隔符",count)分割字符串
3.循环遍历关键字: var ha = "女神说她要来。我草草的收拾了一下房间,她说她不来了,我说我草。"
var index = -1;
while ((index = ha.indexOf("我草", index + 1)) != -1) {
console.log("在第" + index + "位置发现关键字");
}
4.字符种类 Unicode范围
数字0-9:48-57;大写字母A-Z:65-90;小写字母a-z:97-122;汉字:19968-40869
5.模式匹配:可以设置查找替换的规则 只要查找的关键字可能发生变化就使用模式匹配
定义模式:/关键字/模式 i表示忽略大小写 g表示全局替换
6.match() 获得所有关键字的内容 不能确定关键字位置 .length (未找到返回null 先if判断)
7.正则表达式:处理字符串格式用到 what:字符串中字符出现的规则
when:查找,替换关键字,验证字符串格式
1.选择符号:[所有备选字符],多选一,一个[]代表一个字符
2.[^备选字符]除了备选字符^必须放在第一个位置否则变为普通字符
3.-符号 备选字符连续的范围 1-9 [A-Za-z]
4.预定义字符集:d-->[0-9]、[A-Za-z0-9_]-->w(字母数字下划线)、空 字符-->s(可以是空格 tab )
5.如果规则中出现特殊符号用转成原文
6.点.代表任意字符
7.数量词:前面字符出现次数的量词{min,max}{num}:固定长度{min,}至少
8.特殊量词:+:至少出现一次多了不限制 * :可有可无:不限制出现次数 ?:可有可无 :我了?去(一次一位)
9.()分组,改变模式匹配顺序
身份证号:d{15}(d{2}[0-9xX])?
手机号:(+86)?s*1[34578]d{9}
10.^:整个表达式开头表示以什么开始
11.$: 整个表达式结尾表示以什么结尾
12.?=x:预判前一个字符之后紧跟着什么、?!x:预判前一个字符之后不紧 跟着什么
8.RegExp对象:专门封装一条正则表达式,调用API
RegExp.test("被检查字符串")返回boolean类型 true false
var arr=RegExp.exec("被查找的内容") 查找关键字的位置和内容:
arr[0]="找到的内容" arr.index :位置
9.关于查找:仅判断有没有或者仅查找位置:str.indexOf()str.search(支持正则表达式)
仅查找关键字内容:str.match()
既要位置又要内容:REgExp.exec()
10.获取所有<a href=“”></a>的正则<a (.+?)href=[‘"](.*?)[‘"](.*?)>
11.正则表达式:贪婪模式.*或者.+默认匹配整个字符串,再缩小范围。
懒惰模式:(.*?)或者(.+?)从第一个字符开始,向后扩展
12.从正则表达式匹配的内容中取出一部分RegExp.$n $n就是第n个圆括号分组从1开始
必须用RegExp对象调用
13.str.split(/正则表达式/)str.replace(/正则表达式/)str.match(/正则表达式/)str.search(/正则表达式/)都支持正则表达式
14.str.trim()去除字符串开头结尾空格,中间不去掉 对输入字符串先trim
IE8不支持trim 自定义trim方法
15.String 总结:所有API都要用变量接住。。。。
16.Math类型:所有数学计算 Math不能实例化 不能New
API:Math.PI Math.round(num)四舍五入 Math.ceil(num)向上取整 Math.floor (num)向下取整 Math.pow(底数,幂) Math.sqrt(x)Math.abs(num)取绝对值
Math.max(值1,值2....) Math.max.apply(Math,arr)-->求数组中的一个最大值
17.Math.floor.((Math.random()*max-min+1)+min) 随机整数
18.Date对象:封装一个时间点数据 提供对时间日期的API 创建对象 var date=new Date()
Date对象中存的是1970年1月1日 00:00:00到现在的毫秒数
API:1.每个分量都有一对get()/set()方法:获取设置分量值
2.命名:年月日没s 时分秒有s
3.取值赋值 除了每月的日之外 其余都是从0开始 到-1结束
月份取值加一修正 赋值减一修正
星期是从星期日开始的
19.日期计算:两日期相减得到毫秒数
时间做加减法:date.getTime()+5*60*1000
不改变原来的时间对象只能精确到天数
任意分量计算:取出分量 计算 set回去
getFullYear 避免千年虫
setXXX()直接修改原日期对象 自动调整进制
20.日期格式转换API 自定义格式
Number对象:带new 引用类型变量 不带就是值类型转换 num.toFixed(n)返回字符串
Math.round(num)返回数字类型 只能取整
以上是关于Javascript基础学习20问的主要内容,如果未能解决你的问题,请参考以下文章