Javascript的基本数据类型及对应的方法

JavaScript

是一门轻量级的弱脚本编程语言

JS组成部分

  • ECMAscript : js的核心语法
  • DOM : Document Object Model(文档对象模型,提供属性和方法操作页面元素)
  • BOM : Browser Object Model(浏览器对象模型,提供属性和方法操作浏览器的)

JS引入的几种方式

  • 行内(必须是事件属性)
<div class="box" onclick="console.log(123)"></div>
  • 内嵌
<script>
        let obj = {
            name:'wjc',
            hobby:'ball',
            sex:'man'
        }
        let aa = Object.keys(obj); //遍历obj的所有属性名,以数组形式展现
        console.log(aa);

        for(var i in obj) {
            console.log(i);
        }
    </script>
  • 外链
<script src="./js第一天.js"></script>

调试的方式

  • console.log() 控制台
  • alert() 弹框

变量

代表的是一个值的容器或者代名词,并且这个值是可变的容器,或者代名词

声明

  • var 声明一个变量
  • function 声明一个函数
  • const 声明一个常量 (ES6语法)
  • let 声明一个变量(ES6语法)
  • class 类(ES的类)
  • import (基于ES6的模块导入)

JS的命名规范

+ 不能以数字开头
+ 不能是关键字,或保留字
	+ > 不能是`var,let class,for,if,function,new`等等
+ 区分大小写
+ 名字的组成: 数字,字母,下划线,$符
+起名字要有语义化,可以遵循:
	+ >  小驼峰命名: var studentScore = 100;
	+ > 大驼峰命名: var StudentScore = 100;
	+ > 下划线: var student_score = 100;

JS的数据类型

  1. 基本数据类型
  • number 数字类型
    • 特殊: NaN //not a number

      检测NaN: ===;isNaN()

Number(undefined)//NaN
        Number(null)//0
        Number({name:''})//会先调用toString这个方法,然后转化为[object object],在转化成NaN
        // *只要是对象,都会调用toString()方法

        // 关于number的转换规律:
        如果参数是字符串:
            - 里面全是数字=>数字
            - 包含了非有效数字=>NaN
            - 空字符串=>0
        布尔
            - true=>1
            - false=>0
        null=>0
        undefined=>NaN
        //引用数字类型:
        会先隐式调用toString()方法,把他转换成"[Object Object]"==>再接着进行转换
  • string 字符串

    把字符用单引号或双引号包起来的就是字符串

  • null 空
    代表无,表示的是一个空指针,空对象
  • undefined

    声明未赋值,就是undefined

  • Symbol 唯一值(ES6语法)

    一般用于给对象设置属性名的
    Symbol(1)==Symbol(1) //false

  • bigInt
//计算机有一个数值最大安全范围和最小安全范围:
        let max = Number.MAX_SAFE_INTEGER; //9007199254740991
        let min = Number.MIN_SAFE_INTEGER; //-9007199254740991
        console.log(max,min);
        let my_bigint = 9007199254740999n;//大于max,再在后面跟一个n,则将其转换为bigInt类型
        console.log(typeof my_bigint);  //"bigInt"
  • boolean 布尔类型

    true 或 false

  1. 引用数据类型
  • 对象
    • 普通对象类型
    • 数组
    • 正则

      用于校验规则

    • Date 日期
    • Math对象
  • 函数

Number()方法

		console.log(Number(null));//0
        console.log(Number(undefined));//NaN
        console.log(Number({}));//NaN
        console.log(Number({name:""}));//NaN
        console.log(Number([]));//0
        console.log(Number([1]));//1
        console.log(Number([1,2]));//NaN
        console.log(Number({"1":1}));//NaN
        console.log(Number("0"));//0
        console.log(Number(true));//1
        console.log(Number(NaN));//NaN
        console.log(Number(12.500001));//12.500001
	    console.log(Number("12.5.1"));//NaN
	    console.log(Number("12.5px"));//NaN

parseInt()方法

	parseInt('12.5px');//12
    parseInt('12.5');//12
    parseInt('w12.5');//NaN
    console.log(parseInt(NaN));;//NaN
    parseInt("字符串","进制");
    // 例如:
    parseInt("123",2)//把"123"转换成二进制

parseFloat方法

	parseFloat('12.5.6px')//12.5
    parseFloat('w12.5.6px')//NaN
    console.log(parseFloat(NaN));;//NaN

NaN

 //关于NaN
    // 连自己都不相等
    console.log(NaN===NaN);//false
    // 判断方法: 调用isNaN()方法
    console.log(isNaN('12px'));//true 隐式调用Number()方法,转换之后是非有效数字,所以是true
    console.log(isNaN(NaN));//true
    console.log(isNaN('12'));//false
    console.log(isNaN(0));//false
    console.log(isNaN(12));//false
    console.log(isNaN(""));//false,隐私调用Number()方法,将空字符串转为0,所以是false
    console.log(isNaN([]));//false,隐私调用toString()方法,将空对象(数组)转为"",所以是false
    console.log(isNaN(true));//false 有隐式调用Number()方法,转换成数字类型再进行判断
    console.log(isNaN(null));//false
    console.log(isNaN([1]));//false
    console.log(isNaN([1,2]));//true
    console.log(isNaN({}));//true,对象会调用toString()方法,然后将其转换成[Object Object],这是一个字符串,所以包含非有效数字,所以是true
    console.log(isNaN(undefined));//true,先会调用Number()方法,转为NaN,所以isNaN(NaN)是true;
    // isNaN()检测非有效数字的时候,返回就是true,否则返回false

字符串String

//关于字符串String
    + 索引: 每个字符对应的都有一个下标,索引是从0开始的,依次增加;
    + 长度: str.length
    + 最后一个字符的索引: str.length-1
    + 获取最后一个字符: str[str.length-1]

//四则运算:
+ 加法: 如果遇到有字符串,就变成了字符串拼接,如果是引用数据类型,会隐式调用Number这个方法,因为是引用数据类型,所以会隐式调用toString这个方法,调完之后还没来得及转Number()方法,就直接进行了拼接(引用数据类型调用toString()进行拼接);
例子: "2" + {};// 2[Object Object];
+ 减法,乘法,除法 都是调用Number()再进行计算;
"2"/2;//1
"2"*2;//4
"2"-2;//0
"2"-{};//NaN
"2"/2;//1

boolean布尔

//boolean布尔类型
Boolean();//括号里面填写需要转换的值
! 转换为布尔类型,再取反;
布尔的规律:
如果是以下的几个值,转为布尔的时候都是false:
+ Boolean(0);
+ Boolean("");
+ Boolean(null);
+ Boolean(undefined);
+ Boolean(NaN);
//剩下的所有都是true
Boolean({})//true
Boolean("0")//true
Boolean([0])//true
Boolean([])//true

null与undefined

//关于null和undefined的区别
+ undefined 表示声明了,但是未定义;
+ null是一个表示"无"的对象,转为数值时为0;undefined是一个表示"无"的原始值,转为数值时为NaN;
+ null是一个空的对象指针;
+ null可以释放堆内存;
posted @ 2021-07-26 18:01  前端小学生er  阅读(114)  评论(0编辑  收藏  举报