js
- js
- js基础语法规则
- 数据类型
- 函数
- 定义
- 调用
- 对象
- 内置对象
- 自定义对象
- bom
- 窗口移动
- dom
- css样式
- 事件
在前面的博客中我写了一些html和css样式的基础,但是,哪些仍然不够,碰到一些复杂的功能可能就无法解决了,所以我们又用到了js
js
那么先来讲讲js,这个可以解决很多在页面操作上的问题
首先JavaScript虽然名字带Java,但是实际上他俩没啥关系,不过js用了很多的Java的思想,所以你会发觉,它用起来有不少地方和Java类似
js基础语法规则
先来说说js改怎么起手吧,一开始就是导入js
这里导入方式,
第一种行内导入:
<a href="#" onclick="alert('hello world')">点击我</a>
在标签内部写,其中后面的那个onclick接的就是js的一种动作
第二种是写在script中如:
<script type="text/javascript"> alert("hello world...");
</script>
这一片代码放在页面中就会生效,不过推荐写在body标签里的最下面
第三种,从外部引入:
在js目录下写一个hello.js文件然后用下面的方式引入
不过要注意的是用于引入的script标签内就不要再写代码了
一个script只做一件事,要么引入,要么写js代码
<script src="js/hello.js" type="text/javascript"></script>
这个引入的代码推荐跟在title标签后面,也就是header标签里
然后是写注释,这个就不多说了,和Java是一样的
变量命名方面,请参照Java,都是不能使用用关键字、不能数字开头等规则,不过由于javascript是弱类型语言,所以有一点和Java不一样,变量类型是动态的,就是声明变量的时候不需要定义变量的数据类型,使用var就行了
然后是代码调试,
在Java中调试可以使用System.out.println();来在控制台输入,和debug断点测试
在js中也有自己的测试方式
可以用alert()弹窗
document.write();文档输出至页面内
console.log在游览器的控制台中输出,顺带一提可以按F12来打开控制台
也可以使用页面的断点测试
流程控制也就是条件循环这些是和Java一样的
数据类型
虽然在ja里对于变量的数据类型没有要求,但是后面的值还是有类型的
这里就可以使用typeof进行检测
例如:
var a = 123
console.log(typeof a);这里就可以在页面控制台中观看结果
js中数据有这几类
首先是number
这是数字类型包含整数,小数,和各种进制的数字
其中比较特别的有NaN,它不等于任何值包括它自己只能使用isNaN()来判断
还有就是Infinity,它比任何数字都要大,-Infinity比任何数字都要小
第二个是string
这是字符串类型,不同于Java里只能用双引号,在js中字符串即可以用双引号,也可以用单引号
第三个是boolean,
只能是true 和false
第四个是undefined
这个表示变量未定义
第五个是null
这表示空值,不存在,但这也是一个空的对象指针,在使用typeof检测时会返回object
然后是object
对象,是一组数据和功能(函数)的集合。可以用new操作符后跟要创建的对象类型的名称来创建。也可以用字面量表示法创建。
例如:
var person = {name:'zhangsan'} ;两种都是对象对的创建方式
var obj1= new Object();
再来看看运算符,这里和java还是有不少差别的
首先+和-,这个就不说了,谁都会的
然后是 / 号在Java中不管是啥,是要 /0,绝对会报错,但是js不一样,人家 /0 还有值
console.log(-1/0); // -Infinity
console.log(1/0); // Infinity
console.log(0/0) // NaN
console.log(isNaN(0/0)) // true
然后是 *、 %、 ++、 - -这些都和Java是一样的
不过就是还有 **这个是计算幂,优先级比较高
console.log(3**4); // 81
console.log(-3**3); // 报错
console.log((-3)**3); // -27
console.log(-(3**3)); // -27
再来说下比较运算符
这个大部分和Java相同,就来看看不同的地方
==,只判断值是否相等,在js中有些特例
"1" == 1 // true
1 == true // true
0 == false // true
null == undefined // true
NaN == NaN // false
=