一、初识JavaScript
1. JavaScript的发展
- 诞生:1995,Netscape成立(网景公司),命名为mocha,后改名为live script,最终改名为JavaScript;
2. JavaScript的概述
JavaScript 是轻量级、单线程、弱语言的一种脚本语言。
由以下三部分构成:
- ECMAScript ( js的基本语法…… )
- DOM ( 文档对象模型 )
- BOM ( 浏览器对象模型 )
二、JavaScript基本使用
(一)JavaScript书写位置
1. <script>标签内部
<script>
// 内部样式
console.log("hello, world!")
</script>
2. xxx.js文件中
a. 生成一个xxx.js文件(index.js)
console.log('hello, world!');
b. 引入这个xxx.js文件
<script src="./index.js"> </script>
(二)变量
通过var关键字来定义一个变量
1. 命名规范
a. 数字、字母、下划线等字符组成,不能以数字开头
eg:
【错误示范】:4name 、-name
【正确示范】:name 、num ……
b. 小驼峰命名法 (推荐) (第二个单词开始,首字母大写)
eg:
【错误示范】:UserNAME、aaa 、变量名……
【正确示范】:userName 、userAdd……
c. 不能使用js关键字以及保留字
var 、for 、while 、break……
d. 区分大小写
// (num,Num是两个不同变量)
【推荐】局部变量用小写,全局变量全大写;
(三)数据
1. 数据类型
a. 数值类型
// 1) 数值类型(Number)
var num = 10;
console.log( typeof(num)) // 结果为:number
b. 字符串类型
// 1) 字符串类型(string)
var str= ' hello, world! ';
console.log( typeof(str)) // 结果为:string
c. 布尔类型
// 1) 数值类型(Boolean)
var bool= true;
console.log( typeof(bool)) // 结果为:Boolean
d. 空类型
// 1) 空类型(null)
var nul= null;
console.log( typeof(nul)) // 结果为:object
e. 未定义类型
// 1) 未定义类型(undefined)
var nudef;
console.log( typeof(undef)) // 结果为:undefined
2. 数据类型转换
a. 转换为number类型
主要方法有: Number()、praseInt()、parseFloat()
1)字符串 转 数值类型
// var str = '123'
// var str = '123.1a1'
// 当转换为数值类型而无法被解析时,就会变成NaN类型;
// Number()方法是对整体进行转换;
// parseInt()方法是对部分(整数部分)进行截取;
console.log(Number(str));// NaN
console.log(parseInt(str));// 123
2)布尔值 转 数值类型
// 布尔值中,true就是 1;false就是0;
console.log(Number(true));// 1
console.log(parseInt(false));// 0
3)其他 转 数值类型
console.log(Number(undefined));// NaN
console.log(Number(null));// 0
console.log(Number(NaN));// NaN
b. 转换为string类型
主要方法有: toString()、string()
1)数值 转 字符串类型
// 直接转
var num = 123
console.log(toString(num));// 123
c. 转换为boolean类型
主要方法有: Boolean()
1)数值 转 布尔类型
// 直接转
var num = 123
// 除了0,其余都为true;
console.log(Boolean(num)); // true
2)字符串 转 布尔类型
// 直接转
var str= '123'
// 除了'空',其余都为true;
console.log(Boolean(str)); // true
3)其他 转 布尔类型
console.log(Boolean(null)); // false
console.log(Boolean(undefined)); // false
console.log(Boolean(NaN)); // false
// 都为false
3. isNaN()
// 判断是否为NaN
// 是,返回true;不是,返回false;
console.log( isNaN(Number('123a')) )//true
4. 无穷大(infinity)
// 无穷大的数
var max = Infinity;
// 无穷小的数
var min = -Infinity;
(四) 运算符和表达式
a. 算数运算
+ - * / % ++ --
++(--) 前置和后置 的区别?
前置++ ,先自增,再进行运算(执行代码);
后置++, 先进行运算,再自增1;
b. 逻辑运算
&& 与(同true则为true) || 或(有true就是true) ! 非(取反)
c. 比较运算
> < >= <= == != ===(全等 俩个类型和对应的值都要相同)
d. 赋值运算
= += -= /= *= %=
e. 位运算
>> 右移 << 左移 ~~ 去掉小数
e. 三元运算符(三目运算符)
// 表达式 ? true的内容 :false的内容
var a = 10
var b = 20
a>b ? 10 : 20 //20
'123a' / 10 ? 'hello' : 'hi' //hi