js变量 字串符 JS类型转换

206 阅读4分钟

1.变量

1.可以存放任意类型的数据

                声明变量的方式
                    使用关键字 :var
                    var 变量名; // 声明变量未赋值,默认值为undefined 
                    变量名 = 数据;  // 给变量赋值
                    var 变量名= 数据; // 声明并赋值(初始化)

注意事项 使用变量前要先声明,否则程序会报错

声明变量未赋值,默认值为undefined

使用变量前先初始化,也就是需要声明和赋值

2.变量命名组成

字母、数字、下划线(_)、美元符($)组合而成

  • 变量命名规则

不能以数字开头 不能是关键字和保留字

严格区分大小写

  • 变量命名风格

驼峰命名法 大驼峰 --- 多个单词组合,从第一单词开始首字母大写 

 LastBox 

 小驼峰 --- 多个单词组合,从第二单词开始首字母大写 

 lastBox

3.变量类型

1.javascript变量是无类型的

这意味着javascript的变量可以存放任何类型的值

例如,在javascript中,可以把一个数值赋值给一个变量,然后再把一个字符串赋给它,这完全合法

  var i = 10; 
  i = "hello"; 

4.变量声明

在javascript程序中,使用一个变量之前,必须先声明,变量使用var 关键字声明,一个var 关键字可以同时声明多个变量,而且可以将声明变量和变量初始化绑定到一起

var i = 0;
 message = "hello";

var 声明的变量未赋值时,它的初始值为undefined

5.没有块级作用域

avascript没有块级作用域 , 函数中声明的所有变量,无论在哪声明,在整个函数中它们都是有定义的

6.变量的基本类型和引用类型

基本类型(数值,布尔,null,undefined)在内存中有固定的大小,对象,数组,函数属于应用类型

2.字串符

语法

模板字串符是增强版的字符串,用反引号(`)标识

当作普通字符串使用

用来定义多行字符串

在字符串中嵌入变量

用法

// 普通字符串
`In JavaScript '\n' is a line-feed.`

// 多行字符串
`In JavaScript this is
not legal.`

// 字符串中嵌入变量
var name = "Bob", time = "today";
`Hello ${name}, how are you ${time}?`   // Hello Bob, how are you today?

! (上面代码中,模板字符串都是用反引号表示,如果在模板字符串中需要使用反引号,则前面需要用反斜杠转义)

  • 模板字符串中嵌入变量,要将变量名写在${}之中。大括号内可以放入任意的JavaScript表达式,可以进行运算,以及引入对象属性

    var x = 1, y = 2;

    ${x} + ${y} = ${x + y}; // "1 + 2 = 3"

    ${x} + ${y * 2} = ${x + y * 2}; // "1 + 4 = 5"

    var obj = {x: 1, y: 2}; ${obj.x + obj.y} // "3"

3.JS类型转换

1.强制类型转换

强制类型转换指将一个数据类型强制转换成另一种数据类型

类型转换主要指将其他的数据类型转换成String Number Boolean

(1)将其他数据类型转换成String类型

方法一:

调用被转换类型的toString()方法

该方法不会影响到原变量,它会将转换的结构返回

但是注意,**Null和Undefined没有to String( )**方法,如果调用它们的方法,则会报错 例:将number转换成string:

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

方法二:

调用String()函数,并将被转换的数据作为参数传递给函数

使用String函数做类型强制转换时

对于Number和Boolean就是调用toString()方法

对于null和undefined,就不会调用toString()方法,它会将null直接转换成”null”,将undefined转换成”undefined”

例:

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

(2)将其他的数据类型转换为Number类型

转换方式一:使用Number()函数

1) 字符串

如果是纯数字的字符串,则直接将其转换为数字

var a = '123';
a = Number(a);

如果字符串中有非数字的内容,则转换为NaN

var a = '123abc';
a = Number(a);console.log(a);

控制台会打印出NaN

2)布尔类型

布尔类型转换成数字:Ture转成1;False转成0

3)Null

Null转成数字0

4)Undefined

Undefined转成数字NaN

转换方式二:这种方式专门用来对付字符串

parseInt()把一个字符串转换为一个整数

parseFloat()把一个字符串转换为一个浮点数

parseInt()可以将一个字符串中的有效的整数内容去出来,然后转换为Number

parseFloat()和parseInt()作用类似,不同的是它可以获得有效的小数

var a = '123abc',
    b = '12.34.56ab';
a = parseInt(a);
b = parseFloat(b);
console.log(a);
console.log(b);

控制台会输出123和12.34

 如果对非String使用parseInt()或parseFloat(),它会将其转换为String然后在操作

2、显式类型转换(强制类型转换)

就是通过转换函数,将高级类型强制转换成低级类型 

-toString();转换成字符串,所有的数据类型都可以转换成字符串 

-parseInt(); 解析出一个string或number类型的整数部分,如果不能转换,则返回NaN(not a number);

 -parseFloat();解析出一个字符串中的小数,如果没有可转换的内容,则返回NaN 

-Number(),把一个string解析为number,只能包含数字,如果包含非法字符,则返回NaN

(3)将其他的数据类型转换为Boolean类型

使用Boolean()函数

1)对于数字

除了0和NaN,其余的都是true

2)对于字符串

除了空串,其余的都是true

3)null和undefined

对于null和undefined都是false

4)对象

对象默认情况下都转换为true

2.隐式类型转换

1)转换为String类型

转换为String类型:可以为任意的数据类型加一个空串的形式将其转换为字符串

var a = 123;
a = a + ‘’;

原理和String()函数一样

2)转换为Number类型

可以通过一元的 + (+0 /1 *1)来将一个其他的数据类型转换为Number

var a = '123'a = +a;

原理和Number()函数一样

3)转换为Boolean类型

转换为Boolean类型:可以为一个值取两次反来将其转换为布尔值。

隐式转换的特殊规则:

   1、null 和 undefined 是相等的     

          2、要比较相等性之前,不能将 null 和 undefined 转换成其他任何值     

          3、如果有一个操作数是 NaN,则相等操作符返回 false,而不相等操作符返回 true    4、如果两个操作数都是对象,则比较它们是不是同一个对象。(比较引用类型的地址是否相同)

number+string = string number+boolean = 数字,布尔值会转换成0 或1 string + boolean = 字符串,布尔值会转换为字符串true或false boolean + boolean = number,布尔值转换成0或1 typeof()函数可以用于查询变量的当前数据类型 一个表达式中,只要包含了字符串,其结果就是字符串 数据类型的优先级:string > number > boolean