JavaScript
一、JavaScript简介
1、JS介绍
JS全称JavaScript,是由NetScape(网景)公司提供的一门专门嵌入在浏览器中执行的脚本语言。
主要作用:用于实现网页中的动画效果和实现表单校验。
JS可以运行在服务器端(Node.js)
2、JS的特点
-
JS是一门直译式的语言(J边解释边执行,没有编译的过程,执行的就是源代码)
-
JS是一门基于对象的语言(JS中没有类的概念,也没有编译的过程,它可以通过某些机制模拟面向对象)
-
JS是一门弱类型的语言(而Java是强类型)
//在java中,变量一旦声明,就属于固定的数据类型,不能被改变 String str = "abc"; int number = 100;
// 在JS中,变量是不区分类型的,可以指向任意的数据类型 var s = 100;//number(数值类型) s = "abc";//String(字符串类型) s = true;//boolean(布尔类型) s = [];//object(对象类型) s = function(){ }//function(对象类型)
3、JS的优势
-
JS具有良好的交互性
-
JS具有一定的安全性(只能在浏览器内部运行,不能访问浏览器以外的资源)
-
JS具有跨平台性
之所以说JS具有跨平台性,是因为JS是运行在浏览器上的。但是需要注意的是:
- JS语言具有跨平台性,是因为有浏览器,但是浏览器不跨平台!
- 同理,ava语言具有跨平台性,是因为有JVM,但是JVM不跨平台
4、在HTML书写JS的方式
方式一:在script标签内部可以书写JS代码:
在head或者body标签内部可以添加一个script标签,在script标签内部可以直接书写JS代码!
<!-- 在script标签内部可以书写JS注释和JS代码 -->
<script type="text/javascript">
//JS的单行注释
/* JS的多行注释 */
alert( "在html中引入JS的第一种方式..." );
</script>
方式二:通过script标签引入外部的JS文件
在head或body标签内部,可以通过script标签引入外部的JS文件。例如:
<!-- 通过script标签可以引入外部的JS文件 -->
<script src="demo.js"></script>
注意:(1)在引入js文件的script标签内部不要书写JS代码,例如:
<script src="demo.js">
alert( 111 ); //这里的代码不会执行
</script>
(2)不要将引入JS文件的script标签自闭,因为可能会导致文件引入失败,如下:
<script src="demo.js" />
方式三:也可以直接在元素上书写JS代码
<!-- 直接在元素上书写JS代码:
onclick属性用于给当前元素绑定点击事件:点击元素就会触发事件,执行相应函数
-->
<input type="button" value="点我~" onclick="alert('叫你点你还真敢点啊!!!')"/>
<input type="button" value="别点我" onclick="console.log( new Date() )"/>
onclick、ondblclick事件 1. onclick是点击事件,在被绑定了该事件的元素上点击后,会立即触发事件,执行所指向的函数 2. ondblclick是点击事件,区别是需要双击才可以触发事件,执行所指向的函数
二、JavaScript语法
1、注释格式
JS的注释符号和Java的注释符号相同,如下:
// 单行注释内容
/* 多行注释内容 */
2、数据类型
1、基本数据类型
(1)数值类型(number)
在JS中,所有的数值在底层都是浮点型,但是在处理和显示的过程中会自动的和整型进行转换。
例如:2.4+3.6=6
特殊值:Infinity(无穷大) / -Infinity(负无穷大) / NaN(非数字)【No a Number】
(2)字符串类型(string)
在JS中,字符串类型属于基本数据类型,字符串常量可以使用单引号或者使用双引号引起来。例如:
var s1 = "Hello JS";
var s2 = 'Hello JS';
另外,JS中字符串类型有对应的包装对象(String),在需要时会自动的和包装对象进行转换。
var s1 = "Hello JS"; //基本数据类型, string
console.log( typeof s1 ); //string
var s2 = new String("Hello JS"); //复杂数据类型, object
console.log( typeof s2 ); //object
//不管是基本数据类型s1, 还是对象类型s2, 都可以当作对象来用
console.log( s1.valueOf() ); //s1是基本数据类型, 会转成对象, 调用valueOf函数
console.log( s2.valueOf() );
(3)布尔类型(boolean)
布尔类型的值有两个,分别为true和false。
(4)undefined类型
undefined类型的值只有一个,就是undefined,表示变量未定义(但不是指变量没有声明)。
是指声明了变量,但没有为变量赋值,该变量的值就是undefined。
/* 1.undefined类型 */
var x;
alert( x ); //undefined
alert( y ); //抛异常
(5)null类型
null类型的值也只有一个,就是null,表示空值。
可以作为函数的返回值,表示函数返回的是一个空的对象。
注意:null和undefined类型的变量是不能调用函数或属性的,会抛异常!
2、复杂数据类型
主要指对象(JS的内置对象、自定义的对象、函数、数组)
3、变量声明
JS中是通过var
关键字声明变量,声明的变量是不区分类型,可以指向任意的数据。例如:
var x