JavaScript个人学习笔记(一)
JavaScript分3个部分
- ECMAScript标准 —— js的基本语法
- DOM —— Document Object Model 文档对象模型
- BOM —— Browser Object Model 浏览器对象模型
JavaScript是什么?
- 是一门脚本语言(不需要编译,直接执行)
- 是一门解释性语言
- 是一门动态类型的语言
- 是一门基于对象的语言
js应用场景
- 网页特效
- 服务端开发
- 命令行工具
- 桌面程序
- APP
- 控制硬件物联网
- 游戏开发
注意 script 标签格式
严格模式下(或除h5外),要写
<script type="text/javascript"></script>
//或者
<script language="JavaScript"></script>
//也可以同时出现
<script language="JavaScript" type="text/javascript"></script>
变量名注意问题
- 变量名要有意义
- 规范:一般以字母 、$ 符号、_下划线开头,中间或后面可以有$符号、字母、数字
- 变量名一般都是小写
- 如果是多个单词,第一个单词的首字母是小写的,后面所有单词首字母大写 ,称为:驼峰命名法
- 不能使用关键字
var bigNumber = 10;
变量的交换
- 使用第三方变量进行交换
//1.使用第三方变量进行交换
var num1 = 10;
var num2 = 20;
//把 num1 的变量值取出来放到 temp 变量中
var temp = num1;
//把 num2 的变量值取出来放到 num1 变量中
num1 = num2;
//把 temp 的变量值取出来放到 num2 变量中
num2 = temp;
//输出
console.log(num1); //20
console.log(num2); //10
- 一般适用于数字的交换
//2.一般适用于数字的交换
var num1 = 10;
var num2 = 20;
num1 = num1 + num2; //30
num2 = num1 - num2; //10
num1 = num1 - num2; //20
cons0le.log(num1, num2); //20 10
- 扩展的变量交换:位运算(不需要理解)
var num1 = 10;
var num2 = 20;
num1 = num1 ^ num2;
num2 = num1 ^ num2;
num1 = num1 ^ num2;
console.log(num1, num2);
数据类型
js原始数据类型:number, string, boolean, null, underfined, object
- number: 数字类型(整数和小数)
- string: 字符串类型
- boolean: 布尔类型(true(真1)、false(假0))
- null: 空类型, 值只有一个 null
- undefined: 未定义, 值只有一个:undefined
①变量声明了,没有赋值
②函数没有明确返回值,接收了
③如果undefined变量和数字计算,结果是 : NaN不是一个数字,没有意义 - object: 对象类型
获取变量的数据类型
- typeof
/*typeof 使用方法
typeof 变量名
typeof(变量名)
*/
var num = 10;
console.log(typeof num); //number
数字类型(number类型)
- 数字类型有范围: 最大值和最小值
console.log(Number.MAX_VALUE);// 数字的最大值
console.log(Number.MIN_VALUE); //数字的最小值
/*
无穷大:Infinity
无穷小:-Infinity
*/
- 不要用小数验证小数(有bug)
var x = 0.1;
var y = 0.2;
var sum = x + y; //0.3000...04
console.log(sum == 0.3); //false
- 不要用NaN验证是不是NaN
应该用 isNaN() 验证
var num;
console.log(isNaN(num+10)); //true
- 进制
想要表示十进制: 就是正常的数字
想要表示八进制: 以0开头
想要表示十六进制: 0x开头
var num = 10; //十进制
var num2 = 012; //八进制
var num3 = 0x12; //十六进制
字符串类型(string类型)
-
字符串的长度: str.length
-
转义符
html中转义符
js中转义符
-
字符串的拼接
var str = "哈哈哈";
var str2 = "嘎嘎";
console.log(str1+str2);
布尔类型(boolean类型)
- true
- false
undefined和null类型
object(复杂类型)
Symbol类型(ECMAScript6新定义)
类型转换
其他类型转数字类型
- 转整数
console.log(parseInt("10")); //10
console.log(parseInt("10afsdfads")); //10
console.log(parseInt("f10")); //NaN
console.log(parseInt("1dgsad")); //1
console.log(parseInt("10.98")); //10
console.log(parseInt("10.98uhj")); //10
- 转小数
console.log(parseFloat("10")); //10
console.log(parseFloat("10afsdfads")); //10
console.log(parseFloat("f10")); //NaN
console.log(parseFloat("1dgsad")); //1
console.log(parseFloat("10.98")); //10.98
console.log(parseFloat("10.98uhj")); //10.98
- 转数字
console.log(parseNumber("10")); //10
console.log(parseNumber("10afsdfads")); //NaN
console.log(parseNumber("f10")); //NaN
console.log(parseNumber("1dgsad")); //NaN
console.log(parseNumber("10.98")); //10.98
console.log(parseNumber("10.98uhj")); //NaN
其他类型转字符串类型
- .toString()
var num = 10;
console.log(num.toString);
- String()
var num = 10;
console.log(String(num));
//如果变量有意义调用.toString()
//如果变量没有意义使用String()
var num2;
//var num2 = null;
console.log(String(num2));
其他类型转布尔类型
- Boolean(值);
console.log(Boolean(1)); //true
console.log(Boolean(0)); //false
console.log(Boolean(11)); //true
console.log(Boolean(-10)); //true
console.log(Boolean("哈哈")); //true
console.log(Boolean("")); //false
console.log(Boolean(null)); //false
console.log(Boolean(undefined)); //false
操作符
- 算数运算符:
+ - * / %
算数运算表达式:由算数运算符连接起来的表达式
① 一元运算符: 只需要一个操作数就可以运算
++
--
② 二元运算符:只需要一个操作数就可以运算
③ 三元运算符: (第二天)
2. 符合运算符:
+=
-=
*=
%=
- 关系运算符
< > <= >=
== 不严格的
=== 严格的
!=
!==
结果是布尔类型
关系运算表达式:由关系运算符连接起来的表达式
4. 逻辑运算符
&& 逻辑与、并且
|| 逻辑或、或者
! 逻辑非、取反、取非
逻辑运算表达式:由逻辑运算符连接起来的表达式
- 赋值运算符
= += -= *= /= %=
- 运算符的优先级
优先级从高到低
1.() 最高
2.一元运算符 ++ -- !
3.二元运算符 先 * / % 后 + -
4.关系运算符 > >= < <=
5.相等运算符 == != === !==
6.逻辑运算符 先&& 后||
7.赋值运算符
字面量
把一个值直接赋值给一个变量
//声明变量并初始化
var num = 0;
var flag = true;
var str = "哈哈";