js基础
概述:
-
软件:实现一定功能,由多个程序组成
-
程序:由数据结构和算法组成
-
数据结构:储存数据的方式
-
算法:解决问题的方法和步骤
开发语言
解释性语言JavaScript
编译性语言
【软件设计步骤】
- 软件计划
- 需求分析
- 软件设计(数据结构和算法)
- 软件开发
- 软件测试
- 软件上线
- 软件维护
-
- 语法错误:没按照规范书写格式进行书写
-
- 逻辑错误:语法正确,结果和需求不符合
-
- 运行错误:语法和逻辑正确,运行后保持,死循环
算法
定义:解决问题的方法和步骤
特点:
-
- 有效性:a除以b b不能为0
-
- 有穷性:解决问题的步骤是有限的,不能是无穷
-
- 确定性:判断时给定确定的目标或标准,不能是模糊的
-
- 0到多个输入
-
- 1到多个输出
= 赋值运算符
== 比较运算符
& 逻辑运算符
【注释】
- // 单行文本
- /* */多行文本
ECMA
ECMAScript
ES5
ES6
【语句】
书写格式:
关键字 表达式 分号(以分号表示一条语句的结束)
表达式
可以得到结果的公式
标识符
创建变量的方式
看分号判断哪一个是语句
#####书写格式:关键字 标识符 赋值符号 表达式 分号
关键字 标识符 赋值符号 表达式 分号 **ES5 可以重复声明标识符** 变量提升 var i = 1+2 ; **ES6 不可以重复声明标识(不同作用域 )** **let 是声明变量** let i = 1000 ; **const 是声明常量(基本数据类型)** const z = 200 ;
判断标识符的数据类型
书写格式: typeof 标识符
注:输出一个为声明变量的类型则为undefined
获取目标文件的结果
node text(文件名).js(后缀名)
报错原因
使用未声明的标识符
console.log(f74);//f74 is not defined
声明未赋值的变量
console.log(i);//undefined
变量提升 只提升变量的声明,不提升变量的赋值。
即把变量的声明,提升到js文件的第一行
console.log(i);
let i=3;
在ES6中,出现‘Cannot access 'i' before initialization’,'console.log(i);'出现暂时性死区
作用域
功能:变量的使用范围
局部作用域
局部作用域中var声明变量
,会自动提升为全局变量
注:只赋值,
全局作用域
标识符
【命名规范】
【硬性要求】
- 不能以数字开头,可以包含(数字、字母、下划线、美元符号)
- 不许使用关键字和保留字
- 区分大小写(大小写敏感)
【软性要求】 - 望文知意
命名法
- 小驼峰命名法
除了第一个词外其他的首字母大写
例:faWai zhangShan - 大驼峰命名法
所有词首字母大写
例:FaWai ZhangShan - 蛇形命名法
例: fa_wai zhang_shan - 匈牙利命名法
数据类型_变量名
例:N_num
数据类型
【基本数据类型(简单数据类型)】
- 数值型(Number)
- 整数
- 浮点数(小数)
- NaN (但操作一个非数值类型的计算,结果就会是NaN)
- +∞
+
infinity -∞-
infinity
- 字符型(String) 必须加""引号
- 双引号 “”
- 单引号 ‘’
- 字符串模板
- 布尔型(Boolean)true真 false假
布尔转换为数值 true为1 false为0
if (1) {
console.log("love");
}//true转换为1,出现love
if (0) {
console.log("love");
}// false转换为0时没有数值
数值转换成布尔值
let i = 1;
console.log(!i);//false
let j = 0;
console.log(!j);//true
-
其他数据类型转换布尔值
-
0
-
’'
-
""
-
``
-
undefined
-
null
-
false
-
NaN
这些数据都会转换成false
使用场景:当其他数据类型作为判断条件时才会隐式转换Boolean
-
Undefined undefined
-
Null null 表示“空对象”
-
Symbol 在
Object
中解释
判断标识符的数据类型
书写格式: typeof 标识符
注:输出一个为声明变量的类型则为undefined
判断标识符的数据类型
书写格式: typeof 标识符
注:输出一个为声明变量的类型则为undefined
console.log(typeof i);//un
数值型:
let i = 1;
console.log(typeof i);//number
字符型
let i = "abc";
console.log(typeof i);//string
布尔型
let i = false;
console.log(typeof i);//boolean
Undefined
let i = undefined;
console.log(typeof i);//undefined
Null
let i =null ;
console.log(typeof i);//object
【引用数据类型(复杂数据类型)】
Object
:对象
数据类型转换
【强制转换】
let i = 123;
console.log(i, typeof i);//123 "number"
i = Boolean(i);
console.log(i, typeof i);//true "boolean"
i = Object(i);
console.log(i, typeof i);//Boolean {true} "object"
【隐式转换】
- 加号先判断产与运算的有没有字符类型的,如果有即为拼接,如果都为数值则为加法
let i = "123";
let z = 1;
console.log(i + z);//与i产生拼接,结果为1231
- 数值转换成布尔值
let i = 1;
console.log(!i);//false
let j = 0;
console.log(!j);//true
- 字符转换成布尔值
let z = "abc";
console.log(!!z);//true
【逻辑运算符】&&
返回Boolean
与运算
一假全假
let result = true && false;
console.log(result);//false
console.log(1 && 0 && 6);
或运算
一真全真
let result = true || false;
console.log(result);//true
非(取反)
result = !false;
console.<