JS oneday

88 阅读4分钟

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=18age=19;
console.log(age);

数据类型

原始数据类型

  • Number数值
  • String字符串
  • Boolean布尔值true(真)/false(假)
  • Null空
  • Undefined未定义
  • Symbol
  • Biglnt

引用数据类型

  • Array数组
  • Object对象
  • Function函数
  • RegExp正则
  • Math数值
  • Date日期

Number数值类型

  1. 整型(整数)
  2. 浮点(小数)
  3. 数值范围(-2的53次方-1)到(2的53次方-1)
  4. 特殊数值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。