一、概念
一门客户端脚本语言,运行在客户端浏览器中的,每一个浏览器都有JavaScript的解析引擎,不需要编译,直接被浏览器解析执行了
二、功能
可以来增强用户和html页面的交互过程,可以来控制html元素,让页面有一些动态的效果,增强用户的体验
三、基本语法
1.与html的结合方式
1.1:内部js:定义script标签,标签体内容就是js代码
1.2:外部js:定义script标签,通过src属性引入外部的js文件
注意:
a. script标签可以定义在html页面的任何位置,但是定义的位置会影响执行顺序
b. script标签可以定义多个
2.注释
*单行注释://注释内容
*多行注释:/注释内容/
3.数据类型
*原始数据类型(基本数据类型):
1.number:数字。整数/小数/NaN(not a number 一个不是数字的数字类型)
2.string:字符串。不区别单引号双引号
3.boolean:true和false
4.null:一个对象为空的占位符
5.undefined:未定义。如果一个变量没有给初始化值,则会被默认赋值为undefined
*引用数据类型:对象
4.变量
*概念:一小块存储数据的内存空间
*Java语言是强类型语言,而JavaScript是弱类型语言,强类型在变量申请空间时需要规定类型,二弱类型不需要,所以弱类型语言变量申请之后可以改变变量存放数据的类型
*语法:var 变量名 = 初始化值; (不定义初始化值也可以)
案例:
//可以使用typeof运算符检测变量类型
<script>
//定义number类型
var num = 1;
var num1 = 1.2;
var num2 = NaN;
document.write(num+" 的数据类型为---"+typeof(num)+"<br>");
document.write(num1+" 的数据类型为---"+typeof(num1)+"<br>");
document.write(num2+" 的数据类型为---"+typeof(num2)+"<br>");
//定义string
var str = "abc";
var str2 = 'def';
document.write(str+" 的数据类型为---"+typeof(str)+"<br>");
document.write(str2+" 的数据类型为---"+typeof(str2)+"<br>");
//定义boolean
var flag = true;
document.write(flag+" 的数据类型为---"+typeof(flag)+"<br>");
//定义null 和 undefined
var obj = null; //注意null在使用typeof检测结果为object
var obj1 = undefined;
var obj2;//直接定义不初始化相当于定义undefined
document.write(obj+" 的数据类型为---"+typeof(obj)+"<br>");
document.write(obj1+" 的数据类型为---"+typeof(obj1)+"<br>");
document.write(obj2+" 的数据类型为---"+typeof(obj2)+"<br>");
</script>
浏览器页面输出如下:
5.运算符
*一元运算符:只有一个运算数的运算符
++(自增) --(自减) +(正号) -(负号)
注意:在js中,如果运算数不是运算符所要求的内容,那么js的引擎自动会将运算数进行类型转化,转化规则如下:
a.string转number:按照字面值转换,如果字面值不是数字,则转为NaN(不是数字的数字)
b.boolean转number:true转为1,false转为0
*算术运算符
+ - * / %…
*赋值运算符
= += -=….
*比较运算符
> < >= <= ===(全等于)
比较方式:
a.类型相同:直接比较,字符串的话按字典顺序比较,按位逐一比较,直到得出大小结果为止
b.类型不同:先进行类型转化,再比较。全等于:在比较之前,先判断类型,如果类型不一样,则直接返回false
*逻辑运算符
&& || !
注意:&&和||都有短路的特点,即表达式左边为false整个表达式值就可以确定了。使用!会出现其他类型转Boolean的情况如下:
a.number:0为假,非0为真
b.string:除了空字符串(“ ”),其他都是true
c.null和undefined:都为false
d.对象:对象都为true
*三元运算符
? :表达式
目的:简化if-else的写法,语法:表达式?值1:值2 如果表达式为true则取值1,反之取值2
6.js中的特殊语法
a.语句以分号结尾,如果一行只有一条语句则分号可以省略,但是不建议省略
b.变量的定义可以使用var关键字,也可以不使用。用var的话定义的变量为局部变量,不用的话定义的变量为全局变量,也不建议使用
本篇博客就介绍到这里,如发现错误或有疑问请及时提出