[华为云在线课程][JavaScript数据类型和运算符及流程控制][学习笔记][第1章]

举报
John2021 发表于 2022/01/29 22:31:05 2022/01/29
【摘要】 第1章,JavaScript的数据类型 1.1,JavaScript值类型1,number类型var a = 10;console.log(a);//10console.log(typeof a);//number2,string类型var a = "hello world";console.log(a);//hello worldconsole.log(typeof a);//strin...

第1章,JavaScript的数据类型

1.1,JavaScript值类型

  • 1,number类型
var a = 10;
console.log(a);//10
console.log(typeof a);//number
  • 2,string类型
var a = "hello world";
console.log(a);//hello world
console.log(typeof a);//string
var b = 'hello world';
console.log(b);//hello world
console.log(typeof b);//string
  • 3,boolean类型
var a = true;
console.log(a);//true
console.log(typeof a);//boolean
  • 4,undefined类型
var a;
console.log(a);//undefined
console.log(typeof a);//undefined
  • 5,null类型
var a = null;
console.log(a);//null
console.log(typeof a);//object
  • JavaScript的值类型案例
    • typeof关键字作用:检测一个数据的类型;语法:typeof数据或typeof(数据)。
var a1 = 10.05;
console.log("值为:" + a1);//值为:10.05
console.log("数据类型为:" + typeof a1);//数据类型为:number
var a2 = "热爱祖国";
console.log("值为:" + a2);//值为:热爱祖国
console.log("数据类型为:" + typeof a2);//数据类型为:string
var a3 = false;
console.log("值为:" + a3);//值为:false
console.log("数据类型为:" + typeof a3);//数据类型为:boolean
var a4;
console.log("值为:" + a4);//值为:undefined
console.log("数据类型为:" + typeof a4);//数据类型为:undefined

1.2,JavaScript引用类型

object类型

var obj = {};
console.log(obj);//{}
console.log(typeof obj);//object

function类型

var fn = function () {
    return 10;
}
console.log(fn);
/*
* ƒ () {
    return 10;
}
* */
console.log(typeof fn);//function

JavaScript引用类型案例:

var fn = function () {
    return 20;
}
console.log(fn);
/*
* ƒ () {
    return 20;
}
* */
console.log(typeof fn);//function
var obj = {"name": "华为"};
console.log(obj);//{name: '华为'}
console.log(typeof obj);//object
var obj1 = null;
console.log(obj1);//null
console.log(typeof obj1);//object

引用类型和值类型区别

  • 值类型,数据保存在栈中,保存和复制的是值本身,使用typeof检测数据类型,基本类型数据是值类型
/*
        * 值类型复制的是数据,当a=10时,将10赋值给b,
        * 然后a=20重新赋值,并不会改变b的值
        * */
var a = 10;
var b = a;
a = 20;
console.log(a);//20
console.log(b);//10
  • 引用类型,数据保存在栈中,保存和复制的是指向对象的一个指针,使用instanceof检测数据类型,使用new()方法构造出的对象是引用型
var arr = [1, 2];
var arr1 = arr;
console.log(arr);//[1,2]
console.log(arr1);//[1,2]

1.3,JavaScript值类型转换

  • 隐式类型转换一:
    • 转换成string类型,可以为任意的数据类型加一个空串的形式将其转换为字符串:
var a1 = 1;
var result1 = a1 + "";
console.log(result1);//1
console.log(typeof result1);//string

var a2 = true;
var result2 = a2 + '';
console.log(result2);//true
console.log(typeof result2);//string
  • 隐式类型转换二:
    • 转换为number类型,可以通过一元的+运算符来将一个其他的数据类型转换为number:
var a = "123";
a = +a;
console.log(a);//123
console.log(typeof a);//number
  • 隐式类型转换三:
    • 转换为boolean类型:可以为一个值取两次反来将其转换为布尔值:
    • 当为number型时,只有0返回false,其他的数字都返回true
    • 当为字符串时,均返回true
    • 当为null或者undefined时返回false
var a = 10;
a = !!a;
console.log(a);//true
console.log(typeof a);//boolean
  • 强制类型转换:

    • 强制类型转换指将一种数据类型强制转换成另一种数据类型
    • JavaScript类型转换主要指将其它的数据类型转换成string、number、boolean
  • 其它数据类型转换成string类型:

    • 调用被转换类型的toString()方法。该方法不会影响到原变量,它会将转换的结构返回。但是注意,null和undefined没有toString()方法,如果调用它们的方法,则会报错。
    • 调用String()函数。调用String()函数,并将被转换的数据作为参数传递给函数。使用String函数做类型强制转换时,对于number和boolean就是调用toString()方法,对于null和undefined,就不会调用toString()方法,它会将null直接转换成null,将undefined转换成undefined。
var a = 123;
a = a.toString();
console.log(a);//123
console.log(typeof a);//string
  • 其它数据类型转换成number类型:
  • 转换方式一:使用Number()函数
    • 如果是纯数字的字符串,则直接将其转换为数字
    • 如果字符串中有非数字的内容,则转换为NaN
    • 布尔类型转换成数字:true转成数值1;false转成数值0
    • Null转成数字0
    • undefined转成数字NaN
var x1 = 10;
var x2 = "123";
var x3 = "123 123";
var x4 = false;
var x5 = null;
var x6 = undefined;
console.log(Number(x1));//10
console.log(Number(x2));//123
console.log(Number(x3));//NaN
console.log(Number(x4));//0
console.log(Number(x5));//0
console.log(Number(x6));//NaN
  • 其它数据类型转换成number类型:
  • 转换方式二:专门用来转换字符串
    • parseInt()把一个字符串转换为一个整数
    • parseFloat()把一个字符串转换为一个浮点数
    • parseInt()可以将一个字符串中的有效的整数内容去出来,然后转换为number
    • parseFloat()和parseInt()作用类似,不同的是它可以获得有效的小数
var x1 = "123";
x1 = parseInt(x1);
console.log(x1);//123
console.log(typeof x1);//number
var x2 = "123.45";
x2 = parseFloat(x2);
console.log(x2);//123.45
console.log(typeof x2);//number
var x3 = "123.45";
x3 = parseInt(x3);
console.log(x3);//123
console.log(typeof x3);//number
  • 其他数据类型转换成boolean类型:
    • 转换方式:使用Boolean()函数
    • 对于数字,除了0和NaN,其余的都是true
    • 对于字符串,除了空串,其余的都是true
    • null和undefined,对于null和undefined都是false
    • 对象默认情况下都转换为true
var x1 = 1;
var x2 = 0;
var x3 = NaN;
var x4 = "huawei";
var x5 = "";
var x6 = null;
var x7 = undefined;
var x8 = Object;
console.log(Boolean(x1));//true
console.log(Boolean(x2));//false
console.log(Boolean(x3));//false
console.log(Boolean(x4));//true
console.log(Boolean(x5));//false
console.log(Boolean(x6));//false
console.log(Boolean(x7));//false
console.log(Boolean(x8));//true
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。