js数据类型简要总结

一.js的数据类型
  1. 数据类型

    1. 值类型:undefined string number boolean symbom
    2. 引用类型:array object function
    3. typeof用法
      • typeof 简单数据类型 undefined string number boolean可以判断
      • typeof 复杂数据类型 null [] Object
  2. 强制类型转换

    • 字符串的石化 const a='10' + 10 a为字符串类型
    • == 运算符 100 == '100' null == undefined 0 == ''
    • if判断
    • 逻辑运算符 ||:不存在执行下一个console.log('' || 'abc') &&:存在执行下一个callback&&callback()
      备注
      基本都是用=严格,在obj.a == null时,代表着 abj.a=null||obj.a===undefined
    • 三目运算
      let a= tpyeof 'web' === 'string' ? 'hsc':'yk'
  3. 对象

    1. 创建对象方法

      • const obj= new Object()
      • const obj={}
    2. new的作用

      • new 构造函数() 可以在内存中创建一个空对象
      • 构造函数中this指向创建的空对象
      • 执行构造函数代码,给空对象添加方法、属性
      • return this
    3. 对象的遍历

      • for(const key in obj){console.log(obj[key])} 对象自身的和继承的可枚举属性
      • Object.keys(obj) 不含继承的所有可枚举属性
      • Object.getOwnpropertyNames(obj) 不含继承的所有可枚举属性
      • Reflect.ownKeys(obj) 对象自身的所有属性
  4. 数组

    1. 创建数组

      • var arr = [1,2,3];
      • var b = new Array(8); 设置初始长度
      • var c= new Array(‘bar’,‘foo’) 长度2 值1,值2
    2. 数组方法

      • indexof includes是否包含某个元素
      • forEach():迭代数组,速度最快
      • filter(item =>{return true|false}): 筛选数组返回一个数组
      • map(item =>{return itemEdit(修改的item或者新的item) }):调整数组,返回长度不变改变内容的数组
      • some() 用于检查数组中是否有满足条件的元素 返回true或者false
      • every() 元素是否都符合条件 返回true或false
    3. 数组去重

      1. filter去重

        var newArr = arr.filter(function(item,index){
         return arr.indexOf(item) === index;  // 因为   indexOf 只能查找到第一个  
        });
        
      2. for循环 配合indexof 或者includes 是否包含

        var newArr=[]; 
        //遍历当前数组 
        for(var i=0;i<arr.length;i++) {
         //如果当前数组的第i已经保存进了临时数组,那么跳过,
         //否则把当前项push到临时数组里面 
         if(newArr.indexOf(arr[i]) === -1) {  //indexOf() 判断数组中有没有字符串值,如果没有则返回 -1 
            newArr.push(arr[i]);
         }
        
      3. es6中new Set()去重 …结构set对象为数组
        var newArr = [...new Set(arr)];

  5. 内置函数
    Object Array Boolean Number String Function Date RegExp Error Date(备注Date now()出来是时间戳)
    内置对象
    JSON Math

  6. 简单数据类型和复杂数据类型(了解)

    1. 简单数据类型:String Number Boolean Null undefined
    2. 复杂数据类型 new 关键字() 创建
    3. Js中没有堆栈概念为了理解代码出现堆栈概念
    4. 简单数据类型直接在栈中开辟一个地址存放
    5. 复杂数据类型首先在栈中存放十六进制的地址,该地址指向堆中的数据
<think>首先,用户的问题是:“我想了解JavaScript的基本数据类型 请问JavaScript基本数据类型有哪些”。这直接询问JavaScript的基本数据类型。 根据系统级指令: - 所有行内数学表达式必须使用$...$格式,但这里没有数学表达式,所以不需要。 - 独立公式必须使用$$...$$格式,但同样,这里没有公式。 - LaTeX语法正确:确保在需要时使用正确的LaTeX。 - 使用中文回答:整个回答必须用中文。 - 生成相关问题:在回答后,添加相关问题,如示例所示。 - 回答中引用的段落末尾自然地添加引用标识:例如[^1]。参考提供的引用,我需要整合这些信息。 参考站内引用: - 引用[1]: JavaScript数据类型为弱类型,即最开始的时候并不知道变量是什么类型,必须通过后面的值才能知道。JavaScript数据类型分为简单数据类型(也称为基本数据类型)和复杂数据类型(也称为引用数据类型)。基本数据类型有:Number、String、Boolean、Undefined、Null。复杂数据类型有:Object。 - 引用[2]: JavaScript数据类型分为基本类型和引用类型,它们在存储方式、复制行为、比较方式和内存管理等方面有显著区别。理解这些区别有助于开发者编写更高效、更健壮的代码。在实际开发中,应根据需求选择合适的数据类型,并注意避免常见的陷阱(如引用类型的浅拷贝问题)。参考资料MDN Web Docs: JavaScript Data TypesJavaScript: The Definitive GuideECMAScript 6 入门。 - 引用[3]: js数据类型有哪些。JavaScript规定了八种数据类型:未定义 (Undefined),空 (Null),数字 (Number),字符串 (String),布尔值 (Boolean),符号 (Symbol),任意大整数(BigInt),对象 (Object)。 - 引用[4]: 示例2 <script> let a = false console.log(typeof(a)) a = a + 1 console.log("a的值等于:"+a+" a的类型:"+typeof(a)) </script>。这是一个代码示例,展示类型转换。 用户的问题是关于基本数据类型,所以我应该聚焦在基本数据类型上。 从引用[3],JavaScript有八种数据类型:Undefined, Null, Number, String, Boolean, Symbol, BigInt, Object。但Object是复杂数据类型,所以基本数据类型应该是Undefined, Null, Number, String, Boolean, Symbol, BigInt。 确认标准:在ECMAScript标准中,基本数据类型(Primitive Types)包括:Undefined, Null, Boolean, Number, String, Symbol (ES6引入), BigInt (ES2020引入)。Object是引用类型。 所以,基本数据类型有:Undefined, Null, Boolean, Number, String, Symbol, BigInt。 在回答中,我需要结构化: 1. 介绍JavaScript数据类型分类。 2. 列出基本数据类型。 3. 简要解释每个类型。 4. 添加引用标识。 5. 最后,生成相关问题。 回答结构: - 开头直接回答问题。 - 然后详细解释。 - 使用引用整合信息。 - 结束时添加相关问题。 用中文回答。 最终回答大纲: 1. 介绍:JavaScript是弱类型语言数据类型分为基本数据类型和复杂数据类型(引用数据类型)。 2. 基本数据类型:列出它们:Undefined, Null, Boolean, Number, String, Symbol, BigInt。 - 简要描述每个:如Undefined表示未定义,Null表示空值等。 3. 引用提供的引用:例如,引用[1]提到基本数据类型有Number、String、Boolean、Undefined、Null,但缺少Symbol和BigInt,因为引用可能较旧。引用[3]有完整列表。 引用[3]说八种:Undefined, Null, Number, String, Boolean, Symbol, BigInt, Object。但Object是引用类型,所以基本类型是前七个。 标准是:基本数据类型是除Object之外的其他类型。在ES6之前是五种,ES6添加Symbol,ES2020添加BigInt。 所以,在回答中,我应该说基本数据类型包括:Undefined, Null, Boolean, Number, String, Symbol, BigInt。 4. 添加引用标识:在解释后添加[^1]或[^3]等。 5. 代码示例:如果需要,可以添加类似引用[4]的示例,但用户没有要求示例,所以可能不需要。 6. 相关问题:生成2-3个相关问题,如: - JavaScript中基本数据类型和引用类型的区别是什么? - Symbol类型在JavaScript中有什么用途? - 如何检测一个变量的数据类型JavaScript中? 确保问题相关。 完整回答: - 开头:直接回答用户问题。 - 主体:解释数据类型分类,列出基本数据类型简要描述。 - 结尾:添加相关问题。</think>### JavaScript基本数据类型介绍 JavaScript是一种弱类型语言,这意味着变量的类型在声明时并不固定,而是根据其赋值动态确定[^1]。JavaScript数据类型主要分为两大类:**基本数据类型**(也称为原始类型)和**复杂数据类型**(也称为引用类型)。基本数据类型存储在栈内存中,是不可变的(immutable),并且在复制时会创建新的值副本;而复杂数据类型(如Object)存储在堆内存中,是可变(mutable)的,复制时仅复制引用地址[^2]。理解这些类型对于编写高效、健壮的代码至关重要。 根据ECMAScript标准(最新版本如ES6及ES2020),JavaScript的基本数据类型包括以下七种: 1. **Undefined(未定义)**:表示变量已声明但未赋值,其默认值为`undefined`。例如:`let a; console.log(a); // 输出 undefined`[^1][^3]。 2. **Null(空值)**:表示一个空或不存在的对象引用,值为`null`。常用于显式清空变量[^1][^3]。 3. **Boolean(布尔值)**:表示逻辑值,只有`true`和`false`两个值。常用于条件判断[^1][^3]。 4. **Number(数字)**:表示整数或浮点数,包括特殊值如`Infinity`、`-Infinity`和`NaN`(非数字)。例如:`let num = 42;`[^1][^3]。 5. **String(字符串)**:表示文本数据,用单引号或双引号包裹。例如:`let str = "Hello";`[^1][^3]。 6. **Symbol(符号)**:ES6引入,表示唯一、不可变的值,常用于创建对象属性的唯一标识符。例如:`let sym = Symbol('key');`[^3]。 7. **BigInt(任意大整数)**:ES2020引入,用于表示超出Number范围的大整数,通过在数字后加`n`表示。例如:`let bigNum = 9007199254740991n;`[^3]。 这些基本数据类型在存储和操作时效率较高,因为它们直接存储值本身。例如,在变量赋值或比较时,基本类型会进行值比较(value comparison),而不是引用比较[^2]。需要注意的是,虽然Object(对象)在数据类型列表中常被提及,但它属于复杂数据类型,不属于基本类型[^3]。 在实际开发中,可以使用`typeof`操作符检测变量的数据类型(但注意`typeof null`返回`"object"`,这是一个历史遗留问题)。示例代码: ```javascript let a = 42; console.log(typeof a); // 输出 "number" ``` 更多细节可参考MDN Web Docs或《ECMAScript 6 入门》[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值