JS 基础
1.JS是在浏览器上被解释的一门语言。
2.JS存在的两种形式
<script type="text/javascript" src="abc.js">
</script>
<script type="text/javascript">
alert('123')
</script>
可以放在head 和body底部,当JS严重耗时时,建议放着body底部,HTML解析是从上到下解析,可以提高用户体验
3.局部变量与全局变量,单行注释与多行注释
<script type="text/javascript" >
// 全局变量
name = "abc"
function f() {
//局部变量
var name = "123"
}
alert(name)
//单行注释
/*
多
行
注
释
*/
//多行写在一行时要用分号隔开
age = 18;function f1(){}; alert(age)
</script>
4.数字
1.创建数字两种方式
a = 123
a = new Number(123)
2.转换
parseInt parseFloat
转换不成功则为NaN 不是数字
3.Infinity 无穷大
isNaN() 判断是否是NaN
isInfinite() 判断是否是有限数
4.typeof 判断类型
5.功能的计算用Math模块
6.Number.toExponential()用指数计数法格式化字符串
Number.toFixed()采用定点计数法格式化数字
5.跑马灯
<body>
<div id="pmd" style="background-color: red;color: white;text-align: center;font-size: 20px">欢迎光临,我是你们的克哥</div>
<script type="text/javascript" >
setInterval(
function () {
d1 = document.getElementById("pmd")
oldstr = d1.innerText
newstr = oldstr.slice(1) + oldstr[0]
d1.innerText = newstr
},1000
)
</script>
</body>
setInterval 按照时间周期来执行函数
6. abc.js 与 abc.min.js 区别
min.js是经过压缩的js,所有推荐每写一句代码,后面添加一个分号
7.字符串 常用操作
obj.length 长度 obj.trim() 移除空白 obj.trimLeft() obj.trimRight) obj.charAt(n) 返回字符串中的第n个字符 obj.concat(value, ...) 拼接 obj.indexOf(substring,start) 子序列位置 obj.lastIndexOf(substring,start) 子序列位置 obj.substring(from, to) 根据索引获取子序列 obj.slice(start, end) 切片 obj.toLowerCase() 大写 obj.toUpperCase() 小写 obj.split(delimiter, limit) 分割 obj.search(regexp) 从头开始匹配,返回匹配成功的第一个位置(g无效) obj.match(regexp) 全局搜索,如果正则中有g表示找到全部,否则只找到第一个。 obj.replace(regexp, replacement) 替换,正则中有g则替换所有,否则只替换第一个匹配项, $数字:匹配的第n个组内容; $&:当前匹配的内容; $`:位于匹配子串左侧的文本; $':位于匹配子串右侧的文本 $$:直接量$符号
8.布尔值
true false
Boolean(1) Boolean(0)
== != 值相等/不等
=== !== 值类型相等/不等
|| && 或 与
9.数组
javascript 中的数组类似于Python中的列表,常见操作如下:
obj.length 数组的大小 obj.push(ele) 尾部追加元素 obj.pop() 尾部获取一个元素 obj.unshift(ele) 头部插入元素 obj.shift() 头部移除元素 obj.splice(start, deleteCount, value, ...) 插入、删除或替换数组的元素 obj.splice(n,0,val) 指定位置插入元素 obj.splice(n,1,val) 指定位置替换元素 obj.splice(n,1) 指定位置删除元素 obj.slice( ) 切片 obj.reverse( ) 反转 obj.join(sep) 将数组元素连接起来以构建一个字符串 obj.concat(val,..) 连接数组 obj.sort( ) 对数组元素进行排序
10.其他
1.JSON
JSON.stringify(obj) 序列化
JSON.parse(str) 反序列化
2.转义
decodeURI( ) URl中未转义的字符
decodeURIComponent( ) URI组件中的未转义字符
encodeURI( ) URI中的转义字符
encodeURIComponent( ) 转义URI组件中的字符
escape( ) 对字符串转义
unescape( ) 给转义字符串解码
URIError 由URl的编码和解码方法抛出
3.eval 执行字符串中的JavaScript代码,有返回值
4.正则表达式
1、定义正则表达式
/.../ 用于定义正则表达式
/.../g 表示全局匹配
/.../i 表示不区分大小写
/.../m 表示多行匹配
注:定义正则表达式也可以 reg= new RegExp()
2、匹配
test(string) 检查字符串中是否和正则匹配
n = 'uui99sdf' reg = /\d+/ reg.test(n) ---> true # 只要正则在字符串中存在就匹配,如果想要开头和结尾匹配的话,就需要在正则前后加 ^和$
exec(string) 获取正则表达式匹配的内容,如果未匹配,值为null,否则,获取匹配成功的数组。
获取正则表达式匹配的内容,如果未匹配,值为null,否则,获取匹配成功的数组。 非全局模式 获取匹配结果数组,注意:第一个元素是第一个匹配的结果,后面元素是正则子匹配(正则内容分组匹配) var pattern = /\bJava\w*\b/; var text = "JavaScript is more fun than Java or JavaBeans!"; result = pattern.exec(text) var pattern = /\b(Java)\w*\b/; var text = "JavaScript is more fun than Java or JavaBeans!"; result = pattern.exec(text) 全局模式 需要反复调用exec方法,来一个一个获取结果,直到匹配获取结果为null表示获取完毕 var pattern = /\bJava\w*\b/g; var text = "JavaScript is more fun than Java or JavaBeans!"; result = pattern.exec(text) var pattern = /\b(Java)\w*\b/g; var text = "JavaScript is more fun than Java or JavaBeans!"; result = pattern.exec(text)
11.时间
更多操作参见:http://www.shouce.ren/api/javascript/main.html
12.数组与字典
//数组 var lista = []; lista.push(11); lista.push(22); lista.push(33); for(var i = 0;i<lista.length;i++){ console.log(lista[i]); } // 数组类似字典 var arr = new Array(); arr['a']=123; arr['b']=456; arr['c']=789; for(var i in arr){ console.log(i); // a,b,c } //字典 var dict = { 'a':123, 'b':456, 'c':789, }; for(var key in dict){ console.log(dict[key]); // 123,456,789 }

浙公网安备 33010602011771号