变量,数据类型及类型转换

一.直面量(字面量)

字面量:英语叫做literal,也叫做直接量. 看见什么,他就是什么

1.数字的字面量

数字的字面量,就是这个数字自己

1.1整数

三种进制
整数可以被表示成十进制(基数为10)、十六进制(基数为16)以及八进制(基数为8)

10进制:十进制整数字组成的数字序列,
8进制:带前导0、0O、0o 的整数字面值表明它是八进制。八进制整数只能包括数字0-7。
16进制:如带前导0x,0X开头的就是十六进制。十六进制整数可以包含(0-9)和字母 a-f 或 A-F

// 八进制  最终显示是以十进制方式显示
alert(015)   // 1*8 + 5  =  13
alert(017)     // 1*8 + 7 *1 =15
alert(0o21)     // 2*8 + 1 *1 =17
alert(0O21);    // 2*8 + 1 *1 =17

八进制0-7这八个数字,如果小时不合法,js还自动给你转成10进制,转不了就报错

console.log(088);  //88
// 按理说以0开头是八进制,但是后面数字写错了,所以以十进制方式限制

如果以0o或0O开头的八进制将报错

console.log(0o88);  // 报语法错误
console.log(0O88);   // 报语法错误
1.2 浮点数(小数或指数)

小数的字面量也很简单,就是数学上的点。计算机世界中,小数称为“浮点数”。

浮点数字面值可以有以下的组成部分:

一个十进制整数,它可以带符号(即前面的“+”或“ - ”号),如果整数部分是0可以不写
一个小数点
一个小数部分(由一串十进制数表示),
一个指数部分

console.log(3.14159269);
console.log(5e4);       //50000
console.log(5e-4)       //0.0005

注意

只有十进制有小数的字面量,八进制、十六进制没有小数的字面量。所以小数没有进制之分

1.3特殊字面量

Infinity 无穷大

Infinity 用于存放表示正无穷大的数值。
-Infinity 用于存放表示负无穷大的数值。

console.log(3e31415926);     // Infinity

NaN
英语全名叫做not a number,不是一个数。

console.log(0/0);   // NaN
1.4 总结一下
  • 数字字面量有整数字面量(十进制,十六进制,八进制)
  • 浮点数字面量(记住e)
  • 特殊字面量:Infinity ,NaN

2.字符串的字面量

字符串是一个术语,说白了就是我们人说的话。

2.1 字符串字面量的书写方式

字符串的字面量有限定符,就是必须用双引号、单引号包裹起来。字符串被限定在同种引号之间;也就是说,必须是成对单引号或成对双引号。

console.log("今天你好帅哦");

2.2 特殊字符

在字符串中可以使用一些特殊字符,他们有特定的含义

\n New line 换行符
\t Tab tab缩进

但是可以使用字符串中可以使用转义字符,

' 单引号
\” 双引号
\ 反斜杠

二.变量

变量(Variables),和高中数学中的x、y、z很像,它们此时不是字母,而是蕴含值的符号。

什么是变量呢?

就是值可以变化的符号,能够存储JS不同数据类型的值

1.变量声明

使用关键词var

var a;  // 声明一个变量a

所谓关键字,就是有特殊功能的小词语。关键字后面一定要有空格隔开.

2.变量命名规则

变量的名字就是标识符(identifiers),任何标识符的命名都需要遵守一定的规则:

JS中标识符的定义规则,可先理解为变量的规则,以后我们还会接触到其他标识符

  • 由字母、下划线(_)、美元($)符号、数字(0-9)组成

  • 但不能以数字开头

也就是说,一个标识符必须由字母、下划线、美元符号开头,后续可以有字母、下划线、美元符号、数字

  • 严格区分大小写

所以A和a不是同一个变量

  • 不要使用中文变量名

  • 不能使用关键字和保留字

关键字=>js已经赋予特殊功能的字 保留字=>js预订可能未来要使用的字

关键字:

JS语法中有特殊意义的词

break、else、new、var、 case、 finally 、 return、 void 、 catch 、for 、switch 、 while 、 continue、 function 、this 、 with 、default 、 if 、 throw 、 delete 、 in 、 try 、do 、 instranceof、 typeof

保留字:

JS语法中现在不存在,但是以后会成为关键字的单词(替补关键词)

abstract 、 enum 、int 、 short 、 boolean 、export 、interface、 static、 byte 、extends 、 long 、 super 、 char 、 final 、native 、synchronized 、 class 、float 、 package 、throws 、 const 、goto 、private 、transient 、 debugger 、 implements 、protected 、 volatile 、 double 、import 、public

3.变量的赋值

等号表示赋值,会将等号右边的值,赋给左边的变量.

var a;   //定义
    a = 200;   //赋初值
console.log(a)

运行结果:200

3.1 可以将变量定义和赋值写在一起
var a = 200;
3.2 定义变量为赋值

用var 声明的未赋值的变量,值会被设定为undefined

var a;
console.log(a);

注意:
变量只需要var一次,今后更改变量的值,无需重复var,如果多次定义也不会报错

4.变量声明的提升

JavaScript 变量的另一特别之处是,你可以引用稍后声明的变量,而不会引发异常。这一概念称为变量声明提升.JavaScript 变量感觉上是被“举起”或提升到了所有函数和语句之前。然而提升后的变量将返回 undefined 值,所以即使在使用或引用某个变量之后存在声明和初始化操作,仍将得到 undefined 值。

5.不写var的情况

我们可以直接使用一个变量,直接给它赋值,不写var。系统不会报错,但是这样做,以后你会发现有后遗症:这个变量不是局部变量,而是一个全局变量。

a = 33;
console.log(a);
6.同时定义多个变量

定义多个变量时,中间用逗号隔开

var a = 7 , b = 9 , c = 10;
7.区分变量还是直接量

变量的时候,不能加引号。如果变量加上引号,就变成字符串的直接量了。

var a = 200;
console.log("a");     //a

引号是“字符串”的定界符,所以在双引号里面的a已经失去了变量的意思,就是一个字符串a。

三.数据类型

JavaScript中的值,无论是字面量还是变量,都有明确的类型。

1.概述

1.1基本类型5种

number 数字类型
string 字符串类型
boolean 布尔类型,true和false两个值
undefined undefined类型,只有一个值就是undefined
null null类型 只有一个值null

1.2 引用类型

{} 普通对象
[] 数组对象
function 函数对象

2.数据类型的检测

使用typeof关键字检查数据类型,通常用来检测变量的类型,因为直接量的类型一眼就看的出来

console.log(typeof 123);       //number
console.log(typeof "haha");       //string

四.运算符: 加号 +

加法运算符(+)在设计数字和字符串运算的表达式中,JavaScript 会把数字值转换为字符串。

在其它类型数据运算时,JavaScript语言不会把数字变为字符串。

1.转number()

有一些方法可以将内存中表示其他数据类型转换为对应的数字

  • number()

1.string "12px" => NaN => 0
2.boolean true => 1 false => 0
3.null null=>0
undefined undefined => NaN

Number('hello world')  //NaN
  • parseInt()
    paseInt仅能够返回整数,所以使用它会丢失小数部分
parseInt("250,231")     //250

另外,调用 parseInt 时最好总是带上进制(radix) 参数,这个参数用于指定使用哪一种数制

parseInt(17,8);      // 15
  • parseFloat()

parseFloat就是将字符串转为浮点数

尽可能的将一个字符串转为浮点数

 console.log(parseFloat(123.456.888));   //123.456

也就是说,数字类型都是number,不分整数和浮点数,但是转换的+时候分。

  • 正负运算符
console.log(+'88');

正负号转换为数字是内部调用为了Number方法

2.转string

  • + 号运算符

将一个数字,与一个空字符串进行连字符运算,那么就是自动转为字符串了。

var a = 123;
var b = a + "";
console.log(b); //123
console.log(typeof b);//string

3.转boolean

  • Boolean() 方法

只有六种情况Boolean(被转换的数据)的结果是false,其余全是true

  1. 0 数字0
  2. NaN 数字NaN
  3. "" 空字符串
  4. false 布尔值false
  5. undefined undefined类型
  6. null null类型

总结:
alert("您好");

prompt("请输入数字","默认值");

console.log("您好");

Number(“33”)

parseInt("250",8);

parseFloat("250.666");

Boolean("")

你可能感兴趣的:(变量,数据类型及类型转换)