javaScript之变量与数据类型

http://www.cnblogs.com/yuanchenqi/articles/5980312.htmljavascript

在了解变量以前,咱们首先学习JavaScript的引入方式html

JavaScript的引入方式

{#1 直接编写#}
    <script>
        alert('hello zhanzhengrecheng')
    </script>


{#2 导入文件#}
    <script src="hello.js"></script>  

 

一,变量

1.1 变量的含义

  即在程序运行过程当中它的值是容许改变的量。与它对应的就是常量:即在程序运行过程当中它的值是不容许改变的量java

  js是跟python同样一样是弱类型的语言,python中定义变量没有关键字: str = ‘james’python

可是在js中定义变量使用关键字:var str = ‘james’;c++

  对于便利的理解:变量是数据的代号。如同人的名字同样。es6

var num;   // 在JavaScript中使用关键字var声明一个变量

  在JavaScript中,使用上面的语法,就能够声明一个变量,以便在以后给其指定值。安全

var num;
    num = 128; // 这样num作微值128的一个名字,有了名字,就能够在以后引用!
    document.write(num);   // 输出128

1.2  变量的声明和定义

1.2.1 先声明后定义

var dog;
// alert(dog) //undefined  未定义
// 定义
dog = '小黄';

1.2.2 声明马上定义

var dog_2 = '小红';
console.log(dog_2); //小红

  

1.3,变量的规范

var 34bad;//不能以数字开头

var per人;//不能包含中文

var bad-var;//非法的-

var var;//var就是一个关键字,因此很明显不能用来作变量名

1 严格区分大小写

2 命名时名称能够出现字母、数字、下划线、$ ,可是不能数字开头,也不能纯数字,不能包含关键字和保留字。

关键字:var number等

除了关键字 top name 也尽可能不使用。

关键词:函数

保留字学习

javascript保留关键词3d

javascript的保留关键字不能够用做变量,标签或者函数名,有些保留关键字是做为javascript之后扩展使用。

 

3 推荐驼峰命名法:有多个有意义的单词组成名称的时候,第一个单词的首字母小写,其他的单词首字母写

4 匈牙利命名:就是根据数据类型单词的的首字符做为前缀

Camel 标记法
首字母是小写的,接下来的字母都以大写字符开头。例如:
    var myTestValue = 0, mySecondValue = "hi";


Pascal 标记法
首字母是大写的,接下来的字母都以大写字符开头。例如:
    Var MyTestValue = 0, MySecondValue = "hi";


匈牙利类型标记法
在以 Pascal 标记法命名的变量前附加一个小写字母(或小写字母序列),
说明该变量的类型。例如,i 表示整数,s 表示字符串,以下所示“
    Var iMyTestValue = 0, sMySecondValue = "hi";

 

 二,运算符

  js中的运算符跟python中的运算符有点相似,但也有不一样。所谓运算,在数学上,是一种行为,经过已知量的可能的组合,得到新的量。

2.1 赋值运算符

以var x = 12,y=5来演示示例

 

2.2 算数运算符

var a = 5,b=2

 

2.3比较运算符

var x = 5;

 

2.4 特殊状况

  字符串拼接+字符串运算 特殊状况。python中有拼接字符串中更简便的办法,其实在js中也有,你们能够百度引擎搜索es6模板字符串。(扩展)

var  firstName  = '星';
var lastName = 'Li';
var name = '伊拉克';
var am = '美军';
// 字符串拼接
var str = "2003年3月20日,"+name+"战争爆发,
以美军为主的联合部队仅用20多天就击溃了萨达姆的军队。
这是继十多年前的海湾战争后,"+am+"又一次取得的大规模压倒性军事胜利。"
var fullStr = str;
console.log(fullStr)

var fullName = firstName +" "+ lastName;
console.log(fullName)

  

// 不能对字符串进行+运算 只能拼接
var a1 = '1';
var a2 = '2';
console.log(a1-a2) //12

  

var b1 = 'one';
var b2  = 'two';

// NaN. ==== not a number 是number类型
console.log(typeof(b1*b2))

  

三,数据类型

  数据类型包括:基本数据类型和引用数据类型

  基本数据类型指的是简单的数据段,引用数据类型指的是有多个值构成的对象。

  当咱们把变量赋值给一个变量时,解析器首先要确认的就是这个值是基本类型值仍是引用类型值

3.1 基本数据类型

var dog;
dog="小虎子"; //字符串,他们总被包含在双引号(或单引号)中
var num;
num=1;//数字,它们裸露的出现了
var strNum;
strNum="1";//可是如今strNum所引用的是一个字符串,由于它被包含在引号中了
var badNum;
badNum=3.345;//一个小数,由于它带有一个小数点
badNum=.2;//仍然是一个小数,这句代码与badNum=0.2是同样的!
badNum = 0.4.5;//固然,这句代码是错的,一个非法数字

  undefined

Undefined 类型
    Undefined 类型只有一个值,即 undefined。当声明的变量未初始化时,
    该变量的默认值是 undefined。
    当函数无明确返回值时,返回的也是值 "undefined";


Null 类型
    另外一种只有一个值的类型是 Null,它只有一个专用值 null,即它的字面量。
    值 undefined 其实是从值 null 派生来的,所以 ECMAScript 把它们定义为相等的。
    尽管这两个值相等,但它们的含义不一样。undefined 是声明了变量但未对
    其初始化时赋予该变量的值,null 则用于表示还没有存在的对象(在讨论 typeof 
    运算符时,简单地介绍过这一点)。若是函数或方法要返回的是对象,那么找不
    到该对象时,返回的一般是 null。
    var person=new Person()
    var person=null

 

var d1;
//表示变量未定义
console.log(typeof d1)

  null

var c1 = null;//空对象. object
console.log(c1)

  boolean

简介
Boolean类型仅有两个值:true和false,也表明1和0,实际运算中true=1,false=0
布尔值也能够看做on/off、yes/no、1/0对应true/false
Boolean值主要用于JavaScript的控制语句,例如
    if (x==1){
    y=y+1;
    }else    {
    y=y-1;
    }

 

var b1 = false;
console.log(typeof b1)

  string

var str  = '123'
console.log(typeof str)

 

3.2 字符串

简介
是由Unicode字符、数字、标点符号组成的序列
字符串常量首尾由单引号或双引号括起
JavaScript中没有字符类型
经常使用特殊字符在字符串中的表达
字符串中部分特殊字符必须加上右划线\
经常使用的转义字符 \n:换行  \':单引号   \":双引号  \\:右划线

 

字符串相连

var s1="Hello,";
    s1=s1+"World!"; 
    alert(s1);
    s1+="!!!!";
    alert(s1);

  

3.3 数学运算与比较

  js中的运算符跟python中的运算符有点相似,但也有不一样。所谓运算,在数学上,是一种行为,经过已知量的可能的组合,得到新的量。

//加法 + 
    //减法 -
    //乘法 *
    //除法 / 
    //自增 ++
    //自减 --
    var a = 12; var b = 30; var c = a+b;
    alert(c);//输出42
    c=b-a;
    alert(c);//输出18
    c=c*2;
    alert(c);//输出36
    c=c/2;
    alert(c);//输出18
    c = 12;
    c++;//这与c=c+1;效果是同样的
    alert(c);//输出13
    c--;//这与c=c-1;效果是同样的
    alert(c);//输出11
    //自增与自减运算符出现的地方也有讲究
    c=20;
    alert(c++);//输出20,由于++写在变量后面,这表示变量c完成运算以后,再将其值增1
    alert(c);//如今将输出21,自减运算符也与些类似
    //若是只是相似这样的计算
    c = c+12; //能够这样写
    c+= 12;//这与写c= c+12;效果是同样的
    //相似其它的运算也有简便的方法
    c-=3;//c=c-3
    c*=4;//c=c*3;
    c/=2;//c=c/2;

  要注意的是,在JavaScript,链接字符串时也使用“+”号。当字符串与数字相遇时?——JavaScript是弱类型语言

var num=23+45;
alert("23+45等于"+num);//表达式从左往右计算,字符串以后的数字都会当成字符串然链接
alert("23+45="+(23+45));//使用括号分隔

  比较操做符:<,>,<=,>=,==,!=,!;比较操做符返回布尔值

//小于 <
//大于 >
//小于或等于 <=
//大于或等于 >=
//相等 ==
//不相等 !=
alert(2<4);//返回true
alert(2>4);//返回false
alert(2<=4);//返回true
alert(2>=2);//返回true
alert(2==2);//返回true
alert(2!=2);//返回true

  

3.4 表达式的组合

alert( (2<4)==(5>3)==(3<=3)==(2>=2)==(2!=2)==(2==2)==true );

  

3.5 逻辑运算符

// &&逻辑与,当两边的值都为true时返回true,不然返回false
// || 逻辑或,当两边值都为false时返回false,不然返回true
// ! 逻辑非
alert(true && false);//输出false
alert(true && true);//输出true
alert(true || false);//输出true
alert(false || false);//输出false
alert(!true);//输出false

  

四,数据类型转换

JavaScript属于松散类型的程序语言
变量在声明的时候并不须要指定数据类型
变量只有在赋值的时候才会肯定数据类型
表达式中包含不一样类型数据则在计算过程当中会强制进行类别转换


数字 + 字符串:数字转换为字符串
数字 + 布尔值:true转换为1,false转换为0
字符串 + 布尔值:布尔值转换为字符串true或false

 

  因为JavaScript是弱类型语言,因此咱们安全能够将字符串和数字(两个不一样类型的变量)进行相加,这个咱们在前面已经演示过了,固然,不只仅能够将字符串和数据相加,还能够将字符串与数据相乘而不会出现脚本错误!

var str ="some string here!"; var num = 123;
    alert(str*num);//将输出NaN,由于乘法运算符只能针对数字,
    //因此进行运算时计算机会将字段串转换成数字
    //而这里的字符串转换成数字将会是NaN
    //NaN是一个特殊的值,含义是"Not A Number"-不是一个数字,
    //当将其它值转换成数字失败时会获得这个值
    str ="2";
    alert(str*num);//将输出246,由于str能够解析成数字2    

  

var bool = true;
    alert(bool*1);//输出1 ,布尔值true转换成数字为1,事实上将其它值转换在数字最简单的方法就是将其乘以1
    bool = false;
    alert(bool*1);//输出0
    alert(bool+"");//输出"flase",将其它类型转换成字符串的最简单的方法就是将其写一个空字符串相连
    alert(123+"");//数字总能转换成字符串
    var str = "some string";
    alert(!!str);//true,由于非运算符是针对布尔值进行运算的,因此将其它类型转换成布尔值只须将其连续非两次
    str ="";
    alert(!!str);//输出false,只有空字符串转换成布尔值时会是false,非空字符串转换成布尔值都会返回true
    var num =0;
    alert(!!num);//false
    num=-123.345;
    alert(!!num);//true,除0之外的任何数字转换成布尔值都会是true
    //还有一个很是重要的是,空字符串转换成数字将会是0
    alert(""*1);//输出0

  获取变量类型 typeof 运算符

var bool = true;
    alert(typeof bool);//输出boolean
    var num =123;
    alert(typeof num);//输出number
    var str = "some string here";
    alert(typeof str);//输出string
    var strNum = "123";
    alert(typeof strNum);//输出string
    strNum *= 1;
    alert(typeof strNum);//输出number

 

4.1 将数值类型转化成字符串类型

var n1 = 123;
var n2 = '123';
var n3 = n1+n2;
// 隐式转换
console.log(typeof n3);

  

// 强制类型转换String(),toString()
var str1 = String(n1);
console.log(typeof str1);

var num = 234;
console.log(num.toString())

  

4.2 将字符串类型转化成数值类型

var  stringNum = '789.123wadjhkd';
var num2 =  Number(stringNum);
console.log(num2)

// parseInt()能够解析一个字符串 而且返回一个整数
console.log(parseInt(stringNum))
console.log(parseFloat(stringNum));

  

4.3 任何数据类型均可以转换成boolean类型

var b1 = '123';
var b2 = 0;
var b3 = -123

var b4 = Infinity; 
var b5 = NaN;

var b6; //undefined
var b7 = null;

// 非0既真
console.log(Boolean(b7))
相关文章
相关标签/搜索