javascript
初定义:轻量级的若脚本编程语言,具备一定的逻辑和编程思维(面向对象【oop】) 编程语言常见的编程思维:面向对象/面向过程
js主要组成部分
- ECMAscript:js的核心语法
- DOM:document object Model 文档对象模型,提供各种api(方法 属性),让js可以操作页面中的元素
- BOM:borwser object Model 浏览器对象模型,提供各种api(方法 属性),让js可以操作 浏览器
window.location.herf='网址'
js引入的三种方式
-
行内式
必须是事件属性
-
内嵌式
一般写在最后面,正在head里面写的话,需要写window.onload=function(){ js内容写在这里; }
- 外链
变量
定义一个变量并使用:var +变量名=数据 例如
var name="xiaoxiaohui"(把等号后面的值赋给前面定义的变量)
同时声明多个变量时,需要用逗号隔开
var sex="男",age="18";
可以给同一个变量多次赋值
var age=18;
age=19;
console.log(age);
数据类型
原始数据类型
- Number数值
- String字符串
- Boolean布尔值true(真)/false(假)
- Null空
- Undefined未定义
- Symbol
- Biglnt
引用数据类型
- Array数组
- Object对象
- Function函数
- RegExp正则
- Math数值
- Date日期
Number数值类型
- 整型(整数)
- 浮点(小数)
- 数值范围(-2的53次方-1)到(2的53次方-1)
- 特殊数值NaN
-
NaN是number类型,是一个数值,表示非有效数字
-
特点:
-
1.跟任何数运算结果都是NaN
2.NaN与任何数都不相等,包括自己
5.数值运算符号
加减乘除 %
6.isNaN()函数:判断是否为非有效数字,输出布尔值
7.Number强制转化为数字类型
umber()
Number是JS内置的转换方法,可以把其它数据类型“强制”转换为数字类型
-
- 把字符串转换为数字:一但字符串中出现非有效数字字符,则结果为NaN,
只有都是有效数字字 符,才能转换为具体的数字,空字符串会转换为0
-
- 把布尔转换为数字:true转换为1 false转换为0
-
- 把空转换为数字:null转换为0 undefined转换为NaN
-
- 不能把Symbol类型转换为数字,否则会报错
parseInt()/parseFloat():
- 也是把其它数据类型转换为number类型的
- 处理原理和Number不一样,他们是把字符串转换为数字类型(如果处理的值不是字符串,需要先转换为字符串然后再去转换为number类型的)
- 从字符串最左边开始查找,把找到的有效数字字符转换为数字,一直遇到一个非有效数字字符为止,则结束查找
toFixed()
保留小数点后面N位(最后的结果是一个字符串)
Number.MAX_SAFE_INTEGER
console.log(Number.MAX_SAFE_INTEGER); //=>9007199254740991
最大安全数(JS能够有效识别的最大整数)
console.log(9007199254740992 == 9007199254740993); //=>true
应该是不一样的,但是超过了最大数值,JS无法精准计算
BigInt:管理超过安全数值的数字
ES6中提供了一个新的数据类型 BigInt:管理超过安全数值的数字
console.log(BigInt(9007199254740992), BigInt(9007199254740993));
string 字符串类型
① 定义字符串
- 在JS中用 单引号/双引号/反引号 包起来的都是字符串
② 相关函数
String()
<script>
var age="AA";
var aum=1;
var str="1";
var scn="1px";
var ary=[];
var arn=[1];
var arn2=[1,2];
var arn3={};
var boo=true;
var nul=null;
var und=undefined;
console.log(isNaN(age)); // true
console.log(isNaN(aum));// false
console.log(isNaN(str));// false 隐式转化为Number数值类型,在isNaN
console.log(isNaN(scn));// true
console.log(isNaN(ary));// false 空数组隐式转化为0,在isNaN
console.log(isNaN(arn));// false 隐式转化为Number数值类型,在isNaN
console.log(isNaN(arn2));// true
console.log(isNaN(arn3));// true
console.log(isNaN(boo));// false 隐式转化为Number数值类型1,在isNaN
console.log(isNaN(nul));//false 隐式转化为Number数值类型0,在isNaN
console.log(isNaN(und));//true
var age="AA";
var aum=1;
var str="1";
var scn="1px";
var ary=[];
var arn=[1];
var arn2=[1,2];
var arn3={};
var boo=true;
var boo2=false;
var nul=null;
var und=undefined;
console.log(Number(age));//NaN
console.log(Number(aum));//1
console.log(Number(str));//1
console.log(Number(scn));//NaN
console.log(Number(ary));// 0
console.log(Number(arn));//1
console.log(Number(arn2));//NaN
console.log(Number(arn3));//NaN
console.log(Number(boo));//1
console.log(Number(boo2));//0
console.log(Number(nul));//0
console.log(Number(undefined));//NaN
boolean:布尔值
+true
+false
//0 NaN null undefined "" 只有这五个是false,其他都是true
parseInt(); //:字符串里的值,从左往右检索,如果遇到非有效数字就会停止查找,找的是整数,如果第一个就是非有效数字,那结果就是NaN
parseFloat(); //同上,区别就是能检索到小数,只能识别一个小数点
toFixed:保留小数点后面N位(最后的结果是一个字符串)
var num=12.3456
console.log(num.toFixed(2));
</script>
2.4 boolean 布尔值
布尔值表示 真或假 开或关 是或否。
有 true 和 false 两个值
数字转为布尔值: 0转为false,NaN转为false;其他都是true
字符串转为布尔值: 空字符串转为false, 其他都是true
null 转为 flase
undefined 转为 false
总结:除了0 “” null undefined NaN为false,其他都是true
2.4 null 和 undefined
null 表示没有,即该处不应该有值:
1) 在我们不确定一个变量具体数据类型的时候,我们可以先赋值为null,后面可以再给具体的值。。
2) 作为对象原型链的终点。
3) 获取 DOM 获取不到的时候。
undefined 表示缺少值,即此处应该有值,但没有定义:
1)定义了变量没有给值,显示 undefined。
2)定义了形参,没有传实参,显示 undefined。
3)对象属性名不存在时,显示 undefined。
4)函数没有写返回值,即没有写return,拿到的是 undefined。
5)写了return,但没有赋值,拿到的是 undefined。