JavaScript的三种语法形式
JavaScript的语法与css语法类似,都分为3种
1, 行内式
在 标签中 直接定义 JavaScript的 代码内容
这种语法不推荐使用
2, 内部式
在script标签中,直接定义JavaScript代码
3, 外部式
在 外部 js 文件中 (也就是扩展名是 js的文件)
直接定义 JavaScript代码
通过一个 带有 src 属性的 script标签,来导入
一些解释和说明:
1, 行内式,不推荐使用的
书写不方便,而且不利于重复使用
一般做调试使用
2, 内部式和外部式,都是通过script标签来定义的
script标签,理论上,可以写在任意位置,但是一般放在 body内部的最下方
也就是所有的html标签的内容的最后
因为牵扯到 代码的执行顺序
3, 定义了src的script,其标签内容中,定义的JavaScript程序,就不会执行了
给一个script标签,添加src属性,就变成导入外部式的script,script标签内部的JavaScript代码就不会执行
只会执行外部js文件中的内容
变量的定义
: 存储在内存之中的,带有名称的,数据信息,其中存储的数据,在执行过程中,是可以改变的
实际上 就是容器 , 存储数据的容器
所有的计算机程序,数据都会存储咋变量中,通过操作变量,来操作数据
2,定义变量的语法形式
var name = '张三';
3,变量名称的命名规范
(1),规则 必须遵守的
变量名称的内容,只能是数字,字母(大小写都可以),下划线 _ ,美元符号 $
不能以数字开头 一般是以字母或者下划线开头
严格区分大小写
不要使用保留词和关键词
(2),规范 建议遵守的 --- 程序员的潜规则
不要使用中文
见名知意 -- 看见变量名称,就知道存储的是什么数据
驼峰命名法 -- 多个单词组成的变量名称,每个单词的首字符大写
UserName UserPwd
小驼峰 -- 第二个单词开始,首字符大写
userName userPwd
英文太差的,查有道词典
再不行,偶尔可以使用拼音
但是绝对不能使用 拼音缩写
var a1 = 100;
不能以数字开头
var 1a = 100; 会报错
严格区分名称中的大小英文字母
var A1 = 200; // 和 a1 小写的a1 是两个变量
不要使用保留词和关键词
例如,不能定义变量名称 叫 var
JavaScript的数据类型
基本数据类型 / 标准数据类型
布尔类型 , 数值类型 , 字符串类型 , undefined , null
引用数据类型 / 复杂数据类型 / 地址数据类型
数组 , 对象 , 函数
布尔类型
在计算机语言中,布尔值,表示 真 / 假 这样的两个数值
表示 真 / 正确 的数值是 true
表示 假 / 错误 的数值是 false
布尔值,往往是 比较 或者 判断的结果
在 JavaScript中,表示布尔类型的英文 是 Boolean / bool
var a = 100 ;
控制台 console 中 查看/输出 a变量中存储的数值 --> 100
console.log(a);
= 赋值符号, 是将右侧的内容,赋值给左侧变量存储
右侧的内容 是 4>3 的一个比较判断 , 判断的结果 是 真 / 正确
在JavaScript中正确的结果,使用 true 来表示
变量b 中存储的就是 true
var b = 4 > 3 ;
console.log(b);
在变量c中 存储的是 4<3 的结果,是 假 / 错误
在JavaScript中错误的结果,使用false 来表示
var c = 4 < 3 ;
console.log(c);
可以对变量直接进行赋值,赋值的内容是 true 或者 false
但是要注意,这里的true和fasle必须小写
如果大写就会报错,因为就不是布尔值了
直接赋值布尔值
var d = true;
var e = false;
console.log(d,e);
true , false 作为布尔值,可以直接使用
console.log(true , false);
布尔类型 / 布尔值
表示比较判断的结果
true表示真/正确,false表示假/错误
在使用时,一定要小写
字符串类型
所谓的字符串类型,就是由字符,数字,符号等,组成的一串数据类型
JavaScript中 使用 String / str 表示字符串类型
字符串类型 的数据,必须使用 单引号 或者 双引号 来已经包裹
在JavaScript中,单引号,双引号,没有区别,用那个都行
但是必须成对使用
必须是英文格式的符号
var a = 北京 ; 语法错误,会报错
var a = "北京" ;
console.log(a);
特殊情况1: 如果一个数字,也被 引号包裹,那么这个数字,也是字符串类型
var b = 123; // 变量b中存储的是 数值 123
var c = "123"; // 变量c中存储的是 字符串 123
console.log(b,c);
特殊情况2: 引号的嵌套 : 双引号中只能嵌套,单引号,不能嵌套双引号
单引号中只能嵌套,双引号,不能嵌套单引号
特殊情况3: 字符串的拼接
将两个字符串,拼接为一个字符串,称为字符串的拼接
在JavaScript中,字符串的拼接,使用 + 加号来表示
将两个字符串的内容,拼接为一个字符串,赋值给变量存储
可以多个字符串,多次拼接
var str3 = str1 + str2 + '<br>' + str1 + str2 ;
console.log(str3);
在页面中输出要执行换行效果,拼接上 换行标签即可
换行标签页必须是字符串形式
console.log() 控制台输出,不支持 标签效果
数值类型
JavaScript中,数值类型包括:
整数 , 小数 , NaN 3种数值形式
整数: integer / int
在计算机程序中,常用的整数类型有
二进制 : 0 , 1
八进制 : 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7
十进制 : 0 - 9
十六进制 : 0 - 9 a - f
关于进制,我们了解即可,不用学转化计算方式
如果非要计算,可以使用计算器
关键是 各种进制的数值,在JavaScript中如何存储
这里特指的是整数
如果,变量中要存储的整数是 二进制数值
需要在二进制数值前 添加 0B 或者 0b 零b 或者 零B
存储时,是按照二进制数值存储,输出时,默认都是按照十进制数值输出
如果需要按照原始进制数值输出
变量名称.toString(进制) S必须大写
将数值转化为字符串形式输出
var a = 0b11111001;
console.log(a); // 默认将存储数值,转化为十进制输出
console.log( a.toString(2) ); // 默认将存储数值,转化为十进制输出
八进制 在存储数值之前添加0
按照八进制输出, toString(),小括号中写8
var b = 0371;
console.log(b);
console.log( b.toString(8) );
十进制 正常输入就可以
var c = 248;
十六进制 输入数值前,加 0x 零x 或者 0X 零X
var d = 0xf9;
console.log(d)
console.log( d.toString(16) );
浮点数 , 也就是小数 float
1, 有效数字 / 有效数值
在数学中,小数的小数位数,可以是无穷位
在JavaScript中,对于浮点数的总位数有规定
一个浮点数,有效数字/有效数值,最多 17 位
所谓的有效数字,值得是,左起,非零的数值
整数部分,小数部分,一共是17位
直接截取有效部分,而不是四舍五入
console.log(12345.67890123456789012345);
2 , 科学计数法
记录表示数值的一种语法形式
数值 e 数值
2 e 3 2 乘以 10的3次方 2 * (10*10*10)
2 e -3 2 除以 10的3次方 2 / (10*10*10)
关键: 使用科学技术法表示的数值,即时是一个整数,计算机中也是按照浮点数来分类的
2e3表示的是 2000 ,是一个整数,但是计算机程序,仍然会将这个整数,当做浮点数来处理
console.log( 2e3 ); // 2000
console.log( 2e-3 ); // 0.002
3,浮点数的误差 --- 浮点数的 精度丢失 / 精度溢出
在计算机程序中,浮点数的存储,存储内容,不是准确值,而是近似值
在计算机中,就会造成浮点数执行时,计算的误差,也称作精度丢失/精度溢出
但是这种情况不是任何时候都会体现出来
这样的错误,在特殊情况下会体现出来
解决方案,是用高精度浮点来执行计算 float类型 转 double 类型
经典面试题:
写出以下 程序的 执行结果
== 两个等号 表示 判断 两侧的内容是否相等
console.log( 0.1 + 0.2 == 0.3 )
console.log( 0.2 + 0.2 == 0.4 )
console.log( 0.3 + 0.3 == 0.6 )
这是错误的语法形式,我在实际项目中,根本不会这么写
浮点数因为存储方式的问题,直接执行运算或者比较,会造成精度溢出或者精度丢失的现象
造成执行的误差
我会将浮点数,转化为 高精度浮点数 , 在进行运算,会避免这样的问题发生