JavaScript最初的目的:判断客户端的输入;
JavaScript现在的意义:用于页面特效(PC端的网页效果)、移动端(移动web和APP)、异步和服务器交互、服务端开发(nodejs)。
——01——
JavaScript语言:是世界上用的最多的脚本语言(脚本语言,不需要编译,直接运行时边解析边执行的语言),是一种客户端(浏览器)的脚本语言。需要编译的语言:C、C++、Java、C#。
编译和解释的不同:
var a = 0;
console.log(a)
var b = "abc";
编译:一次性把代码转换成CPU可以看懂的的语言,一行一行执行(代码执行的效率高);
解释:一行一行解析,解析一行执行一行。
JavaScript的组成:
ECMAScript:JavaScript的语法规范
DOM:JavaScript操作网页上元素的API
BOM:JavaScript操作浏览器部分功能的API。
引入JavaScript
(1)HTML页面书写JavaScript
<script>
console.log("hello world");//在控制台输出字符串
alert("hello world");//弹出消息框
</script>
(2)引入外部JavaScript文件
<script src="js.js"></script>
--02--
script标签的属性
Async:异步,多个人同时做多件事;
Sync : 同步,一个人有序的做多件事情。
type属性:type=“text/Javascript”,可以省略;
Async:async="async",值可以省略,但不建议省略,立即异步下载外部js,不影响页面其他的操作,js下载完毕立即执行;
defer:defer=“defer”,值可以省略,也是异步执行,脚本延迟到文档完全被解析和显示后再执行,只有外部脚本可以使用。
JavaScript的变量
变量是在计算机中存储数据的一个标识符;变量可以在声明的时候赋值,也可以稍后赋值,例如:var number= 50;var name= “王五”;或者 var name = “王五”;可以在一行上定义多个变量:var name,sex,age。
弱类型:JavaScript是弱类型的脚本语言
var age = 90;
age = “王五”;
这两行代码在JavaScript中是合法的,原因就是:JavaScript是弱类型的语言。但不建议这么使用。
变量命名规则和规范
规则(必须遵守):由下划线、字母、数字、$组成;不能是关键字和保留字、区分大小写
规范(建议遵守):变量的名称要有意义、变量的命名遵守驼峰命名法,首字母小写,第二个单词的首字母大写。例如:userName
注释:
单行注释——//单行注释
多行注释——/*多行注释*/
注释的应用:一般用于解释某些复杂代码的逻辑,方便于后期的维护和开发;一般用于对整个模块进行分割划分,方便于代码查找代码和维护;一般用于:模块、函数、复杂逻辑注解、文件注解、维护记录等。
PS:大家在写代码的时候,尽量写注释,方便日后查看。
——03——
数值类型
数据类型:
简单(基本、值)数据类型,Number、 String、Boolean、Undefined、Null;
复杂(引用)数据类型:Object、Array、Date;
查看当前变量的数据类型:typeof name / typeof(name);
数值字面量
字面量:固定的值,让你从“字面上”理解其含义;
数值字面量:var age = 18;//数值字面量,18为字面值;
Number类型
十进制,var num = 9;进行算数计算时,八进制和十六进制表示的数值最终都将被转换成十进制数值;
十六进制,var num = 0xA;数字序列范围:0~9以及A~F;
八进制,var num1 = 07;//对应十进制的7,var num2 = 019;//对应十进制的19。数字序列范围:0~7,如果字面值中的数值超出了范围,那么前导零将被忽略,后面的数值将被当做十进制数值解析;
浮点数,var n = 5e-324;最高精度是17位小数,但在进行算数计算时其精确度远远不如整数,如:var result = 0.1+0.2;//结果不是0.3,而是0.3000000000000004;永远不要测试某个特定的浮点数值(不要判断两个浮点数是否相等)。
数值范围
最小值:Number.Min_Value,这个值为:5e-324
最大值:Number.Max_value,这个值为:1.7976931348623157e+308
无穷大:Infinity
无穷小:-infinity
数值检测
NaN 非数值(Not a Number):console.log("abc/18"); //结果是NaN
isNaN():任何不能被转换为数值的值都会导致这个函数返回true:isNaN(NaN);//true,isNaN(123);//false
String类型
字符串字面量:var name = “zhangsan”;//zhangsan 字面量;
字符串要用引号引起,单引号和双引号的作用是等效的;
字符串是由一个一个字符组成的,获取一个字符串中的字符个数可以使用length,例如:var name = “zs”; alert (name.length);//2
字符串是不可变的,也就是说,一旦创建,它们的值不能改变。要想改变某个变量的值,首先要销毁原来的字符串,然后在用另一个包含新值的字符串填充该变量。
Boolean类型
有两个字面量:true和false,并且区分大小写;虽然Boolean类型的字面值只有两个,但ECMAScript中所有类型的值都由于这两个Boolean值等价的值。
例如:
var result = Boolean("a");
console.log(result);//true
var result = Boolean (100);
console.log(result);//true
转换成Boolean类型
任何类型可以转换成Boolean类型,一般使用在流程控制语句后面,
例如:
var message = "hello";if(message){alert(message+"world")};
当变量的值是空字符串、0、NaN、null、undefined都转换为false。
Undefined类型
是一种比较特殊的类型,表示变量未赋值,这种类型只有一种值就是undefined。
例如:
var message;console.log(message);//结果是undefined
undefined是Undefined类型的字面量。
typeof message 获取到的是"undefined"。