JavaScript 起源(了解即可)
最初由网景(netscape)公司推出,一开始叫Livescript,由于当时Java十分火爆,为了蹭一波热度,因此他们在新浏览器版本发布前夕把LiveScript改名为JavaScript,从此JavaScript就诞生了。Javascript 是什么:是一种跨平台,事件驱动、基于原型的面向对象、弱解释性、单线程客户端脚本语言
最初目的: 解决繁琐的表单验证
演变与关系: Livescript、Javascript、JScript、ECMAScript
版本: es5 2012 es6 2015 es7\es8Javascript 由三部分组成,分别是:
ECMAScript
Javascript的语言核心,是一个标准,可以理解为一系列的规定;比如有什么数据类型,代码风格是怎么样之类的...
BOM
浏览器对象模型
DOM
文档对象模型使用JS的两种形式
// JS注释
// 单行注释
/* 多行注释 */
// 内联写法
<script>
// 万事hello word起步,
// document.write()方法:把括号中的内容输出到文档中
document.write('<h1>Hello World</h1>')
</script>
// 外链 引入
// 编写a.js文件
document.write(‘<h1>Hello World</h1>');
// 在HTML中引入JS
<script src="a.js">
- 注意点
1.不管是内联使用JS还是外链引入JS的方式,都推荐在HTML</body>前面使用
2.src 属于覆盖属性
<script src="a.js">
// 不会执行,会被a.js中的内容覆盖
document.write('告辞!!!');
</script>
-
声明变量规则
- 使用 var 、 let / const (es6新增) 关键字声明
- JS是弱类型语言,声明变量时,不需要声明类型
- 声明变量,不赋值,得到的结果是undefined
-
变量命名规范
- 必须以 美元符号 或 英文字母开头,由 美元符号、下划线 和 英文字母数字组成
- 不能使用JS关键字、保留字
- 英语字母区分大小写
- 驼峰式命名法
-
JS数据类型
- 基本数据类型:Number、String、Boolean、Undefined、null、Symbol(es6新增)
- 引用类型:object({}、[]), function
判断一个变量的类型
// typeof()
var a = 5
typeof(a) // number
// 几种特殊情况
typeof(null) // object
typeof(function) // function
typeof(NaN) // number
- instanceof 判断一个实例是否属于某种类型
// instanceof 关键字
var arr = []
arr instanceof Array // true
-
强制类型转换
xxx.toString():强制转换为字符串
null 和 undefined不可以强制转换为字符串Number():强制转换为数字
只有数字字符串,才可以转换为数字
空字符串转为数字0,其它字符串都为NaN
true 为 1,fasle 为 0
null 为 0,undefined 为 NaN --not a number
任意两个NaN互不相等
- Number的几个常用方法
parseInt()
console.log(parseInt('12abc456')); // 12
console.log(parseInt('1阿爸34')); // 1
console.log(parseInt('abc12345')); // NaN
parseFloat()
console.log(parseFloat('123.456abcd')) //123.456
// 字符串要求: 必须以数字开头, 碰到非数字的字符结束, 返回来一个整数
isNaN():判断是否为数字,本身属于Number
xxx.toFixed(num)
// 四舍五入保留num位小数,转换一个数字,返回字符串!!!
- Boolean():强制转换为布尔
字符串转布尔:非空即为真
数字转布尔:非0即为真
null 、undefined 都为false
所有的对象,转为布尔类型, 一定为true
- 运算符
算数运算符 + - * / %(取模)
赋值运算符 = += -= *= /= %=
一元运算符(自增、自减)
++i,增加变量,返回一个新的值
i++,增加变量,返回旧的值
--i, 减少变量,返回一个新的值
i--, 减少变量,返回旧的值
var k = 4;
var sum = k + ++k + k++ + ++k + --k + k--;
// 4 + 5 + 5 + 7 + 6 + 6
console.log(k); // 5
console.log(sum); // 33
关系运算符
== === >= <= > <
返回布尔类型的值逻辑运算符
|| 有一真即返回
&& 有一假即返回
! 把值隐式转换为布尔类型,取反三元运算符 ( ?:)
var a = 1;
a == true ? 'aaa' : 'bbb' // aaa