JS概述
- 不能使用关键字
- 只能使用unicode字符,数字,_,$,组成;不能以数字开头
- 区分大小写
- 变量声明可以使用的关键字let,var,const(常量)
运算符
基本与java一样
特例:除(/) 5/2=2.5 ; 5/3=1.666666666667
0.2+0.1 == 0.3 -> false = 0.3000000000000004
== :只要求内容相等,不要求数据类型相同。
===:不仅要求内容相同,还要求数据类型相同。
获取元素
document.querySelector(css选择器).value //获取一个元素值alert(); //向页面弹出提示框innerHTML //操作页面某个元素的内容,可以获取,也可以赋值document.write() //向页面中写内容
javascript的引入方式
第一种
内嵌式:将js代码直接嵌入html页面中。这种方式的js代码只对本页面有效。<script></script>
第二种
外链式:独立创建一个.js后缀的文件,并在html文件中导入。<script src="文件相对项目的地址" type="text/javascript" charset="UTF-8"></script>
**
js中正则匹配方式
- 使用string对象中的match()
match() - 从字符串中检索出**一个或多个**正则表达式的匹配对象,返回匹配到的值的列表(数组)
var s = "123123456af3";var regsrr = s.match(/\d+?/g); //[1,2,3,4...3]var regsrr = s.match(/\d+/g); //[123123456,3] ?匹配一个或0个var regsrr = s.match("123"); //[123] 只有一个值var regsrr = s.match(/\d+?/); //[1] g的作用是反复匹配,没有g匹配到一个就结束了
- 使用正则对象中的test()
test() - 检查一个字符串是否匹配某个模式(RegExpObject.text(String)),返回true和false
var reg = /\d+/greg.test("abcd1") //true
js中的函数
函数:实现一定功能的代码块,类似Java中的方法。
三种定义格式:
- function fun1(参数1,参数2){函数体} //通过创建函数名来定义函数
- var fun2 = new Function(“参数1”,”参数2”…,”函数体”); //通过创建变量来定义函数
- function(){函数体} //匿名函数
说明:
1,在调用时,可以为没有参数的函数传递参数;但如果没有传递参数给有参数的函数时,默认参数为undefined
2,如果有参数,参数不能使用var关键字
3,js中没有重载,只要名字重复就会覆盖前面的函数
4,在JS中设计函数的时候,任何一个函数内部都有内置的参数,这个参数用来接收传递进来的所有数据。
这个内置的参数arguments。它会把传递的所有参数全部接收。这个arguments是一个数组。
querySelector和getElementById的区别
- 前者效率高于后者
- 前者为静态获取节点,后者为动态获取节点
这个代码会出现无限循环问题。因为getElementById()是动态获取节点,所以每次添加一个元素的时候,文档都随着变化而改变。当ul添加li,ul的长度就+1了。<body><ul id="box"><li class="a">测试1</li><li class="a">测试2</li><li class="a">测试3</li></ul></body><script type="text/javascript">//获取到ul,为了之后动态的添加livar ul = document.getElementById('box');//获取到现有ul里面的livar list = ul.getElementsByTagName('li');for(var i =0;i<list.length;i++){ul.appendChild(document.createElement('li')); //动态追加li}</script>
- getElement(s)Byxxxx获取的是动态集合,它总会随着dom结构的变化而变化。
- querySelectot()获取的是静态集合,它不会因为dom结构变化而变化。
