概述-基本语法-变量-数据类型
1 JavaScript 概述
① JavaScript 的特点
JavaScript 是一门动态的,弱类型的,解释型的,基于对象的脚本语言。
动态:程序执行的时候才会确定数据类型。静态:书写代码的时候提前确定数据类型。
弱类型:数据类型可以自动转换。强类型:数据类型无法自动转换。
解释型:边编译,边运行,开发效率更高。编译型:先编译,后运行,运行效率更高。
**脚本:**一般都是可以嵌在其它编程语言当中执行。
② javaScript 的运行环境
所有的高级编程语言都无法直接在电脑上运行,需要安装运行环境,编译型语言的运行环境称之为编译器,解释型语言的运行环境称之为解释器。
运行环境负责把编程语言编译为机器码。
JavaScript 的运行环境是浏览器或者Node.js。
② 客户端浏览器的 JavaScript 组成部分
ECMAScript, JavaScript 的基本语法。BOM 浏览器对象模型, 浏览器提供给 JavaScript 的接口。DOM 文档对象模型, 文档页面(HTML和CSS)提供给 JavaScript 的接口。2 JavaScript 基本语法
2.1 JavaScript 在 HTML 中使用的三种方式
① 行内式
配合属性,把JS代码写在HTML标签里面。
<button onclick="JS代码..."></button><button ondblclick="JS代码..."></button>
② 内嵌式
使用 script 标签,把JS代码写在 script 双标签之间。
<script>JS 代码...alert(' ')</script>
注意: 建议CSS写在 head 标签内,而 JS 代码建议写在其他HTML元素的最后面。
③ 外链式
js 代码写在独立的 js 文件中,在 html 中使用 script 标签的 src 属性引入 js 文件。
<script src="js文件的地址"></script>
注意:外链式与内嵌式不要共用一个 script 标签。
2.2 JavaScript 注释
// 单行注释// alert('ok');/*多行注释多行注释*/
2.3 JavaScript 语法特点
1. JavaScript 中严格区分大小写。2. 每条JavaScript语句结束需要语句结束符,分号或者换行都可以作为语句结束符。
2.4 JavaScript 中输出内容
① 输出到弹框
alert(内容);
② 输出到页面中
document.write(内容)
③ 输出到控制台
console.log(内容);
3 变量
3.1 数据、直接量、变量
数据:计算机计算的就是数据,运算的结果也是数据。
直接量:直接使用数据就是直接量。
变量:给数据取个名字,使用该名字就可以使用数据了。
3.2 变量的意义
用变量给数据取了名字,通过变量就可以使用数据,方便对数据的多次重复使用。使用变量可以把数据存储下来,保证后续使用的还是原来的数据。3.3 变量的语法
1、把数据给变量的过程称之为给变量赋值, 存储到变量中的数据称之为变量的值。
2、如果要创建新的变量,需要使用关键字var,如果使用的变量已经存在不需要关键字var
// 创建一个变量var username;// 创建变量并且赋值var age = 1000;var address = age;// 修改变量的值(给变量赋新的值)username = '芳芳';address = '上海'// 同时创建多个变量var a,b,c;// 同时创建多个变量并且赋值var a = 100, b = 200, c = 300;
3.4 变量的命名规范(标识符的命名规范)
① 强制规范
1、变量名必须由数字、字母、下划线、$ 组成并且不能以数字开头。
// 声明变量并且给变量赋值var a123 = 1000;var $123 = 1000;var _123 = 1000;
2、变量名不能是关键字或保留字。
关键字:在 JS 中具有特殊意义的词。
保留字:目前在 JS 中还没有特殊意义,但是将来可能会具有特殊意义的词。
// var var = 100;
② 建议规范
1、变量名应该是由有意义的单词组成。
2、如果变量名是由多个单词组成,建议使用小驼峰命名法,如homeAddress
、userHomeAddress
。
4 数据类型
4.1 数据类型的划分
① 原始类型
number数值类型string字符串类型boolean布尔类型undefined未定义类型null空类型
② 对象类型
Array 数组类型Object 对象类型Function 函数类型...
4.2 判断数据的类型
typeof()
var num = 109.23;console.log(num);console.log(typeof(num));数字类型console.log(typeof(89));console.log(''); 空白的类型,空行
4.3 number 数值类型
① 整型
var n1 = 89; // 十进制表示var n2 = 010; // 八进制表示var n3 = 0x10; // 十六进制表示
② 浮点型
var n4 = 34.009;var n5 = 78.0;var n6 = 45e-2; // 科学计数法
注意:
浮点数的计算存在精度问题!原因是计算机需要转为二进制数再进行计算。
③ NaN
NaN 全称 Not a Number, 是一个特殊的 number 类型的值。
NaN 这个值具有两个特点:
NaN 与任何数进行任何运算,计算结果还是 NaN。NaN 与任何数都不相等,包括自己。
使用 isNaN() 函数可以判断一个数是不是 NaN。
console.log(0*NaN); //等于NaNconsole.log(1==NaN); //falseconsole.log(NaN==NaN); //falseconsole.log(isNaN(NaN)); //ture
④ JavaScript 中数字的有效范围
JavaScript 可以表示的数字存在有效范围,5e324 ~ 1.7976931348623157e+308 。
如果超出有效范围,会用 Infinity(正无穷) 或者 -Infinity(负无穷) 来表示,Infinity 和 -Infinity 是特殊的 number 类型值。
var n8 = 12312e600;var n9 = -789e400;var n10 = 89e-400;console.log(n8,typeof(n8)); //infinityconsole.log(n9,typeof(n9)); //-infinityconsole.log(n10,typeof(n10));//0
使用 isFinite() 函数来判断一个数字是否在有效范围内。
console.log(isFinite(n8)) //flaseconsole.log(isFinite(n9)); //flaseconsole.log(isFinite(n10)); //ture
4.4 string 字符串类型
① 字符串的表示方式
// 使用单引号var s1='字符串内容'// 使用双引号var s2="字符串内容"
注意:
使用单引号定义字符串与使用双引号定义字符串没有任何区别。单引号定义的字符串内容中中不允许写单引号;双引号定义的字符串内容中不允许写双引号。
② 转义字符
\n表示换行符\\表示\本身\'用于在单引号定义的字符串中使用单引号\"用于在双引号定义的字符串中使用双引号
var s5 = "锄禾日当午\n汗滴禾下土\n谁知盘中餐n\粒粒皆辛苦"var s6 = "JS中可以使用\\n表示换行"var s9 = '她说:\'你好\''
4.5 boolean 布尔类型
布尔类型的数据有两个值,分别是 true 和 false。
var b1 = true;var b2 = false;console.log(typeof(b1));console.log(typeof(b2));
4.7 null 和 undefined
undefined类型的数据表示没有定义,都是被动产生的,定义变量没有赋值以及对象中不存在的属性和数组中不存在的元素,这些情况会自动得到 undefined 类型的数据。
null表示存在但是内容是空,一般需要 null 的时候,会主动给变量赋值为 null。
注意:使用 typeof 判断 null 的数据类型,得到是 object。
var v1;var v2 = null;console.log(v1,typeof(v1)); //undefined "undefined"console.log(v2,typeof(v2)); //null "object"
var age;console.log(typeof(100.92));// numberconsole.log(typeof('450'));// stringconsole.log(typeof(NaN)); // numberconsole.log(typeof(null));// objectconsole.log(typeof(age)); // undefinedconsole.log(typeof(isNaN(567)));// boolean