JS中一定要了解的数据类型和数据转换

简介: 一、数据类型前言Js中的类型只有6种,其中基本数据类型有5种分别为string,number,boolen,null,undefined,引用类型有一种,就是object,object是一个大的综合体,在JS中除了那5个基本数据类型以外,其他的一切皆对象。

一、数据类型

前言

Js中的类型只有6种,其中基本数据类型有5种分别为string,number,boolen,null,undefined,引用类型有一种,就是object,object是一个大的综合体,在JS中除了那5个基本数据类型以外,其他的一切皆对象。以下是最近自学js整理的一些笔记,希望能让更多初学者了解到数据类型的基本概念。

正文

1.获取变量类型

typeof

var age = 18;
console.log(typeof age);  // 'number'

2.基本数据类型

字符串(String),数值型(number),布尔型(boolean)

<script>
    //a.字符串
    var a = "laowangba"; 
    //document.write(typeof(a));
    
    //数值
    var b = 123;
    var b1 = 123.1;---> 同样是number类型,不要判断两个浮点数是否相等.
    
    //布尔型
    var c = ture;
    var d = false;
</script>
  • Boolean字面量: true和false,区分大小写
  • 计算机内部存储:true为1,false为0

3.复合数据类型

对象(object),数组(array object)

<script>
    //对象
    var e = {'name':'niu','age':18}; ---> 等价于PHP中class a()
   
</script>

4.其他数据类型

函数,null,undefined

<script>
    //函数类型
    var j = function(){};
    //document.write(j); ---> 这里可能会有争议,但typeof打印出来的确就有funcion类型
    
    //null类型
    var h = null;
    //document.write(h); ---> 空对象,对象类型中的一个分支,没有此对象的时候会显示null.
    //alert(document.getElementById('notExistElement')); --->显示为null,找不到此对象
    
    //undefined类型
    var g;
    //document.write(i); ---> 打印一个不存在的变量,定义为undefined,未定义或者定义了,但未初始化
    
    
    //alert(null == undefined);---> 显示结果是true
    //alert(null === undefined);---> 显示结果是false
</script>

二、数据类的转换

2.1 隐式转换

隐式转换常用于if判断等需要直接结果的地方.

<script>
    undefined == null;  // true   
    1 == true;  // true  
    2 == true;  // false  
    0 == false;  // true
    0 == '';  // true
    NaN == NaN;  // false ---> NaN 注意:这是JS中一个特殊的表示,NaN表示不等于任何值.这个数值表示本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)。任何数值除以0都会导致错误而终止程序执行。一般使用isNaN()来判断是否为NaN类型.
    [] == false;  // true  
    [] == ![];  // true
    '6' - '3'  // 3
    1234 + 'abcd' // "1234abcd"
</script>
  1. undefined与null相等,但不恒等(===)
  2. 一个是number一个是string时,会尝试将string转换为number
  3. 隐式转换将boolean转换为number,0或1
  4. 隐式转换将Object转换成number或string,取决于另外一个对比量的类型
  5. 对于0、空字符串的判断,建议使用 “===”
  6. “==”会对不同类型值进行类型转换再判断,“===”则不会.它会先判断两边的值类型,类型不匹配时直接为false

2.2显示转换

Number:


var a = Number('1');
var b = Number(1);
var c = Number('c');
var d = Number(null);
var e = Number(undefined);

console.log(a,b,c,d,e); // 1 1 NaN 0 NaN

// Number()可以把任意值转换成数值,如果要转换的字符串中有一个不是数值的字符,返回NaN

String:


String(1234);  // "1234"
String('abcd');  // "abcd"
String(true);  // "true"
String(undefined); // "undefined"
String(null);  // "null"

Boolean:


var a = Boolean('0');
var b = Boolean(0);
var c = Boolean('1');
var d = Boolean(null);
var e = Boolean(undefined);
var f = Boolean(NaN);

console.log(a,b,c,d,e,f); //true false true false false false

// 0、''(空字符串) 、null、 undefined 、NaN 会转换成false  其它都会转换成true

parseFloat:

var a = parseFloat('1.2df'); //1.2
var b = parseFloat('1.3.4'); //1.3
var c = parseFloat('c12'); //NaN
var d = parseFloat(null); //NaN
var e = parseFloat(undefined); //NaN

console.log(a,b,c,d,e); 

// parseFloat() 把字符串转换成浮点数
// parseFloat()和parseInt非常相似,
// 不同之处在与parseFloat会解析第一个 . 遇到第二个.或者非数字结束
// 如果解析的内容里只有整数,解析成整数

parseInt()

var a = parseInt('1.2df'); //
var b = parseInt(1);
var c = parseInt('c12');
var d = parseInt(null);
var e = parseInt(undefined);

console.log(a,b,c,d,e); //1 1 NaN NaN NaN

// 如果第一个字符是数字会解析,直到遇到非数字结束
// 如果第一个字符不是数字或者符号就返回NaN

2.3 字符串特别说明

1. 单引号和双引号均可解析转义字符

2. 单引号和双引号均不能解析变量

3. 变量与字符串,变量与变量要使用+来拼接,区分开PHP

4. 单引号和双引号可以互相嵌套,如果单引号中药嵌套单引号,需要将单引号转义,同理,双引号相同

<script>
    //单引号和双引号为啥不能解析说明
    var a = 10;
    alert('a'); ---> 此处懵逼,到底是要输出变量还是字符串?它不像PHP,有个$直接可以区分开变量和字符串
    alert('a'+ a);
    
    //+连接说明
    alert('hello' + 3 + 'world'); //hello3world
    alert(3 + 2 + 'hello' + 5 + 'world'); //5hello5world
    alert(4 + 4 + 'hello' + 4 + 5 + 'world'); //8hello45world  ---> 左往右连接,两个数字会理解为加号,直到碰见不为数值则理解为拼接.
</script>

如何打印一下字符串:

var s = '我很喜欢   \"雷锋  \'的精神\'  \"';
console.log(s);
  • 字符串长度

length属性用来获取字符串的长度

var str = 'Hello World';
console.log(str.length);
相关文章
|
7月前
|
Web App开发 数据采集 JavaScript
动态网页爬取:Python如何获取JS加载的数据?
动态网页爬取:Python如何获取JS加载的数据?
1220 58
|
9月前
|
JavaScript 前端开发 API
JavaScript中通过array.map()实现数据转换、创建派生数组、异步数据流处理、复杂API请求、DOM操作、搜索和过滤等,array.map()的使用详解(附实际应用代码)
array.map()可以用来数据转换、创建派生数组、应用函数、链式调用、异步数据流处理、复杂API请求梳理、提供DOM操作、用来搜索和过滤等,比for好用太多了,主要是写法简单,并且非常直观,并且能提升代码的可读性,也就提升了Long Term代码的可维护性。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
9月前
|
数据采集 JavaScript 前端开发
JavaScript中通过array.filter()实现数组的数据筛选、数据清洗和链式调用,JS中数组过滤器的使用详解(附实际应用代码)
用array.filter()来实现数据筛选、数据清洗和链式调用,相对于for循环更加清晰,语义化强,能显著提升代码的可读性和可维护性。博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
存储 JavaScript 前端开发
JavaScript中的数据类型以及存储上的差别
通过本文的介绍,希望您能够深入理解JavaScript中的数据类型及其存储差别,并在实际编程中灵活运用这些知识,以提高代码的性能和稳定性。
282 3
|
监控 JavaScript 算法
深度剖析 Vue.js 响应式原理:从数据劫持到视图更新的全流程详解
本文深入解析Vue.js的响应式机制,从数据劫持到视图更新的全过程,详细讲解了其实现原理和运作流程。
|
存储 JavaScript 前端开发
js中的数据类型
JavaScript 中的数据类型包括五种基本类型(String、Number、Undefined、Boolean、Null)和三种引用类型(Object、Array、Function,以及ES6新增的Symbol)。基本类型直接存储值,引用类型存储的是指向实际数据的内存地址。了解它们的区别对于掌握 JavaScript 的变量赋值和函数传参至关重要。
313 1
|
数据采集 存储 JavaScript
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
本文介绍了如何使用Puppeteer和Node.js爬取大学招生数据,并通过代理IP提升爬取的稳定性和效率。Puppeteer作为一个强大的Node.js库,能够模拟真实浏览器访问,支持JavaScript渲染,适合复杂的爬取任务。文章详细讲解了安装Puppeteer、配置代理IP、实现爬虫代码的步骤,并提供了代码示例。此外,还给出了注意事项和优化建议,帮助读者高效地抓取和分析招生数据。
508 0
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
|
前端开发 JavaScript
JS-数据筛选
JS-数据筛选
134 7
|
JavaScript 数据安全/隐私保护
2024了,你会使用原生js批量获取表单数据吗
2024了,你会使用原生js批量获取表单数据吗
245 4
|
存储 JavaScript 前端开发
JavaScript 数据类型详解:基本类型与引用类型的区别及其检测方法
JavaScript 数据类型分为基本数据类型和引用数据类型。基本数据类型(如 string、number 等)具有不可变性,按值访问,存储在栈内存中。引用数据类型(如 Object、Array 等)存储在堆内存中,按引用访问,值是可变的。本文深入探讨了这两种数据类型的特性、存储方式、以及检测数据类型的两种常用方法——typeof 和 instanceof,帮助开发者更好地理解 JavaScript 内存模型和类型检测机制。
481 0
JavaScript 数据类型详解:基本类型与引用类型的区别及其检测方法