【JavaScript】变量数据类型运算符

1.变量的声明和赋值

什么是变量?

解释:可以变化的量

1. 变量是用于存储信息的容器
2. 变量是一段命名的存储空间
3. 变量是才程序运行过程中值允许改变的量
4. 变量是由变量名,变量值,和变量类型组成

变量命名规则

1. 第一个字符必须为字母,_或$,其后的字符还可以是数字
2. 严格区分大小写,要有一定的含义
3. 建议使用小驼峰规则来命名变量。redApple
4. 不能使用关键词,保留字作为变量名

变量的命名和赋值

  1. var 变量名

    变量名=值

  2. var 变量名=值

  3. 变量名=值

  4. var 变量1=值1,变量2=值2,变量3=值3

注意:

  • 变量名是浏览器关闭后才释放在,在没关闭之前随时使用

  • 重新声明的变量,不会丢失原始值,除非重新赋值

  • 换行是语句的结束,最好结束时都加上 “ ; ”

2.数据类型

JS为弱类型语言,不必声明数据类型,而是在使用或赋值的时候确定其类型:七种数据类型,五种原始类型

五种原始类型:string,number,boolean,undefined,null

两种特殊类型:数组,对象

在js中除了undefined和null以外,其他数据类型都是对象类型

对象类型

  • 本地对象:string,Array,Date,Aath,Golbal,独立于宿主环境的ECMAScript实现提供的对象

  • 宿主对象:DOM,BOM。ECMAScript中的‘宿主’就是我们网页的运行环境,即‘操作系统’和‘浏览器’

判断数据类型

可以通过typeof运算符来判断数据类型

 

String

js中用来表述文本的数据类型

  1. 字符串用单引号或双引号包括起来

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

  3. 变量与字符串,变量与变量之间可以使用运算符‘+’来链接

  4. 单引号和双引号可以互相嵌套,如果单引号中要嵌套单引号,需要使用转义字符

转义字符

 

注意:

  1. \n换行(在alert中生效)

  2. 8进制表示法【进行两次转换,这里面的数字是ASCII中表示的八进制数字】

  3. 16进制表示法

  4. 16进制unicode表示法

console.log('\062') //八进制50  对应的值:2 

Number

按照进制划分:二进制、八进制、十进制、十六进制

按照其他划分:整形、浮点型、NaN(not a number)

js中所有的数字是以IEEE-75标准格式表示的,浮点数的精确问题不是js特有的;因为有点小树以二进制表示位数是无穷的

整形: 0,6,-100,0xff00(十六进制),0377(八进制),0b1010(二进制),不管输入的是几进制,最终显示时都会转为10进制

浮点型:

1.2,0.123,3.14e11=>3,14*10^11 科学计数法

0.375+0.248.toFixed(2)=>保留两位小数(四舍五入)
console.log(1.0-0.9==0.1)//false
console.log(1.0+0.9==1.9)//true

NaN(not a number):

NaN是一个特殊的number值,not a number表示非数字,当程序由于某种原因计算错误时,将产生一个无意义的数字NaN

NaN与任何值都不想等,包括NaN本身

任何涉及NaN的操作,结果都为NaN

var a='hello';
b=10;
alert(a-b)  // NaN

Boolean

  1. 值只有true和false。分别代表逻辑真与假

  2. 布尔值通常用来表示比较所得的结果

  3. true和false是严格区分大小写的

var n=10;
if(n>8){
    alert('我是true');
}else{
    alert('我是false');
}

undefined

  1. 定义了一个变量但没有为该变量赋值,使用了一个并未赋值的变量

  2. 使用了一个不存在的对象的属性时

var n;
alert(n);
var people=new Object; // 创建一个object对象
people.height =162;  // 添加属性height
alert(people.height);  // 输出属性height
people.show=function(){  // 添加方法show
    alert(this.color);   // 调用属性color
    alert(this.height);  // 调用属性 height
}
people.show()  // 调用方法show

null

  • null表示一个空值

  • null不等于空字符串""、''或0

  • null和undefined的区别是,null表示一个变量被赋予了一个空值,而undefined则表示该变量尚未被赋值

console.log(null==null) // true

Array(数组)

创建数组

方法一:var 数组名=new Array();

方法二:var cars=new Array("Audi","BMW","BYD");

方法三:var cars=["Audi","BMW","BYD"];

var cars=new Array("Audi","BMW","BYD");
for(i=0;i<cars.length;i++){
    document.write(cars[i]+"<br/>")
}

JS的严格模式

在js中存在一个严格模式,使用 use strict来定义;这个是ES5中新增加的;

"use strict";
x = 3.14; 
console.log(x);

"严格模式"体现了Javascript更合理、更安全、更严谨的发展方向,包括IE 10在内的主流浏览器,都已经支持它,许多大项目已经开始全面拥抱它

另一方面,同样的代码,在"严格模式"中,可能会有不一样的运行结果;一些在"正常模式"下可以运行的语句,在"严格模式"下将不能运行。

3.数据类型转换

  1. 自动转换->js会根据需要自动进行类型转换,但是转换时会遵循一定的规则

  2. 强行转换->通过内置对象的方法强制转换

转为字符串

自动转换

*类型**转换字符串型后的结果*
numberNaN、0、或数值对应的字符串
null"null"
boolean"true"、"false"
undefined"undefined"
object若对象存在为其toString()方法的值,若对象不存在为"undefined"

强制转换:

String(),object.toString()

转为数字类型

自动转换

*类型**转换为数字型后的结果*
string若内容为数字则为相应数字,否则为NaN
null0
booleantrue转为1,false转为0
undefinedNaN
objectNaN

强制转换

Number() 按照自动转换规则转换

parseInt() 、parseFloat()

isNaN() 函数用于检查其参数是否是非数字值

转为布尔类型

自动转换

*类型**转换布尔型后的结果*
""或''false
0
NaN
undefined
null
其它true

强制转换

Boolean(), !!

if(0 || "" || '' || NaN || undefined || null){
    alert('true')
}else{
    alert('false')
}
!!123.11=>true
Boolean('abc')=>true

4.运算符

表达式

常量 1.2 ‘str’ false

变量 x y

复合 x+1

操作符:表达式 x+1中的x,1为操作符

运算符:表达式x+1的,+为运算符

算术运算符(+,-,*,/,%,++,--)

  1. “+”算数加和字符串想接

    i++ 先赋值,再加1;++i 先加1,再赋值

// 实现各行换色效果
for(var i=1;i<=10;i++){
    if(i%2==0){
        document.write("<font color='red'>"+i+"</font>");
    }else{
            document.write("<font color='green'>"+i+"</font>");
    }
}

注意:正号有隐式类型转换功能

alert(typeof(+'5'))  // number

比较运算符(>,<,>=,<=,==,===,!=不等于,!==不全等于)

console.log(1.2+1.1==2.3) //true
console.log(1.2-1.1==0.1) //false

总结:比较运算符的结果是boolean类型

赋值运算符(=,+=,-=,*=,/=,%=)

分解

var i=10;
i+=1 // i=i+1

使用场合:累加求和,字符串拼接

逻辑运算符(!,&&,||)【两边均为表达式】

逻辑运算符用于测定变量或值之间的逻辑 ||存在断点问题,第一个式子成立,不在执行第二个式子;如果第一个式子不成立,执行第二个登式 && 式子两边同时成立,执行的是if(true),只要有一个不成立。或两个都不成立执行false

||运算方法[真前假后]:

只要“||”前面为false,不管“||”后面是true还是false,都返回“||”后面的值。 只要“||”前面为true,不管“||”后面是true还是false,都返回“||”前面的值。

&&运算方法[假前真后]:

只要“&&”前面是false,无论“&&”后面是true还是false,结果都将返“&&”前面的值; 只要“&&”前面是true,无论“&&”后面是true还是false,结果都将返“&&”后面的值;

思考:

console.log( 0 || 1 );
console.log( 1 || 2 );
console.log( 0 && 1 );
console.log( 1 && 2 );

条件运算符【三元运算符/三目运算符】

条件表达式?结果1:结果2 如果条件表达式结果为true则返回结果1 如果条件表达式结果为false则返回结果2

var m=100>99?66:33
alert(m)

5.运算符的优先级

下表按从最高到最低的优先级列出JavaScript运算符。具有相同优先级的运算符按从左至右的顺序求值。

 

小括号>算术运算符>比较运算符>逻辑运算符>赋值运算符

思考

var a=5;b=3;
var c;
c=a+b>3 && a<a-b*2; 

//思考1
var i = 4=='4' ? 'A' : 'B';
alert(i);  

//思考2
var m = 3+4>7 || 4*0.25>0.09; 
alert(m);  

//思考3
var n = 1;
var s = 0;
if(p=--n||++s){
	n++;
	s++;
}
alert(n); 
alert(s)  

//思考4
var a=0;
var b=4;
if(c=a&&b<6){
	c=a+b;
}else{
	c=a-b;
}
alert(c); 

6.JSON数据类型

JSON:JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式

主要作用:

JSON 是用于存储和传输数据的格式。

JSON 通常用于服务端向网页传递数据 。

特性:

json的键不能重复,如果键是一个完整的单词,可以直接写,如果键里面包含了空格,要用引号引起来

格式:

{key: value, key: value}

数据为 键/值 对。

多个数据由逗号分隔

value可以为任意类型

定义复杂的json格式

var address = {
    "city":"成都",
    province:'四川',
    aaa:{
       name:'Test',
       value:{
           value:"123"
       }
     },
     bbb:[{
       name:"lisi"
     },{
       name:"zhangsan"
     },{
       name:"wangwu"
     }],
     say:function(){
       
     }
};	

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值