JavaScript基础语法概念之(数据类型、强制转换、运算符)

数据类型:(数据类型就是字面量的类型)

JS的六种数据类型:

	String        字符串
	Number        数值
	Boolean       布尔值
	Null          空值
	Undefined     未定义
	Object        对象(引用数据类型)
  • 基本数据类型都是单一的值,值与值之间没有任何联系
  • 对象是一种复合数据类型,在对象中可以保存多个不同数据类型的属性
  • 对象的分类:
    ①内建对象(由ES标准定义的对象,在任何ES实现中都可以使用)
    ②宿主对象(由JS运行环境提供的对象,目前主要由浏览器提供,如BOM,DOM)
    ③自定义对象(由开发人员自己创建)

下面只介绍String、Number、Object


String 字符串

  • JS中字符串需要用引号引起来
  • 使用双引号或单引号都可以,但不能混用
  • 嵌套使用时要交替使用
  • 字符串中可以使用\作为转义字符

Number 数值

  • JS中所有的数值都是Number类型,包括整数和浮点数
  • 使用typeof检查数据类型,语法:typeof a;
  • JS中可以表示的最大值Number.MAX_VALUE,最小同理,如果表示的数字超过最大值,返回Infinity(正无穷)
  • NaN是一个特殊的数字,表示Not A Number,使用typeof检查一个NaN也会返回number

Object 对象
①创建对象

  • 构造函数(constructor):使用new关键字调用的函数

  • 构造函数是专门用来创建对象的函数

     var obj=new Object();
    

②向obj中添加属性

  • 属性:在对象中保存的值

  • 向对象添加属性语法:对象.属性名=属性值;

       obj.name="tom";
    

③读取对象中的属性

  • 读取对象中的属性语法:对象.属性名

  • 如果读取对象没有属性,不会报错,而会返回undefined

      console.log(obj.name);
    

④修改对象属性

  • 语法:对象.属性名=新值;

      obj.name="lerry";
    

⑤删除对象的属性

  • 语法:delete 对象.属性名

      delete obj.name;
    

强制转换:

将其他数据类型转换为String:
方法一:

  • 调用转换数据类型的toString()方法

  • 该方法不会影响原变量

  • 注意:null和undefined没有toString方法,调用会报错

      	var a=123;
      	a=a.toString();
    

方法二:

  • 调用String()函数
    (对于number和Boolean实际上就是调用tostring()方法
    但是对于null和undefined是直接转化为字符串)

      	var a=123;
      	a=String(a);
    

将其他数据类型转换为Number:
方法一:

  • 使用Number()函数
    ①如果是纯数字字符串直接转换为数字
    ②如果是字符串中有非数字内容,转化为NaN
    ③如果字符串是空串或者空格转化为0
    ④布尔–>数字,true转1,false转0
    ⑤null–>数字,转为0
    ⑥undefined–>数字,转为NaN

方法二:

  • parseInt()、parseFloat()专门用于字符串转换
    ①可以将字符串中有效地内容转换为Number
    ②对于非String类型,会先转化为String再操作

其他进制的数字:parseInt(a,10)中,10表示进制


将其他数据类型转换为Boolean:

  • 使用Boolean()函数
    ①数字–>Boolean,除了0和NaN其他都是true
    ②字符串–>Boolean,除了空串其他都是true
    ③null和undefined都是false
    ④object也是true

运算符(操作符):

(以下主要介绍不常见知识点)

算术运算符:+ - * / %
①typeof是一个运算符,可以获得一个值得类型
②对于非Number的数字进行运算时,会先转化为数值类型。
③如果对两个字符串进行相加,相当于拼接
④任何值和字符串做加法运算,会先转化为字符串,然后拼接,其他均是转为number
(这是一种隐式类型转换,由浏览器自动完成)
⑤任何值做-*/时都会自动转化为number

	var a="123";
    var b,c;
    b=a+1;
    c=a-1;
    console.log(b);
    console.log(c);

控制台输出:
1231
122


一元运算符:
+正号:不会对数字产生影响
-负号:取反
对于非Number类型的数值,它会先转化为Number,然后再运算
可以使用+来将字符串转化为number
自增++:使变量自身增加1
自减–:使变量自身减1

      var b;
      b=2+ +"5"+1;
      console.log(b);

控制台输出:8

关于++和–详细知识和c语言相同,这里不过多介绍,可以参见连接https://editor.csdn.net/md


逻辑运算符:! && ||
非布尔值进行&&、||运算时,先将其转化为布尔值,且返回原值
&&:两个值都为true,则返回后边的一个;两个值中有false,则返回靠前的false
||:如果第一个值是true直接返回第一个值;第一个值为false直接返回第二个值

    //false&&true
    console.log(0&&2);
    console.log(2&&0);
    //false&&false
    console.log(NaN&&0);
    console.log(0&&NaN);

在这里插入图片描述

    //false||true
    console.log(0||2);
    console.log(2||0);
    //false||false
    console.log(NaN||0);
    console.log(0||NaN);

在这里插入图片描述

赋值运算符:= += -= *= /= %
=:将符号右侧的值赋值给符号左侧的变量
+=: a+=5相当于a=a+5


关系运算符:> < >= <=

  • 如果关系运算符成立则返回true,如果不成立则返回false

非数值比较

  • 任何值和NaN做任何比较都是false
  • 对于非数值比较,会先将其转化为数字后再比较
  • 如果符号两侧都是字符串,分别比较字符串的Unicode编码
    (比较字符串时是一位一位的比,如果两位一样则比较下一位,所以借他对英文排序。比较中文时没有意义)
    console.log(10>null);
    console.log(true>false);
    console.log(10<="hello");
    console.log("1"<"6");
    console.log("11"<"6");

控制台输出:

Unicode编码输出:
①在字符串中用转义字符输出:\u四位编码(十六进制编码)
②在网页中使用Unicode编码&#编码 ;(十进制编码)


相等运算符:== != === !== ==:

  • undefined衍生自null,NaN不和任何值相等,包括它本身
    null==0–>false
    undefined ==null–>true
    ` NaN ==NaN–>false
  • JS可以通过isNaN()函数来判断一个值是否为NaN
    ===: 全等
  • 用来判断两个值是否相等,不同于==,它不会做隐式类型转化,如果类型不同直接返回false

条件运算符条件表达式?语句1:语句2(三元运算符)

逗号(,)运算符:可以同时声明多个变量并赋值

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

又又爱拍照

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值