js 变量

01、字面量:数字和字符串

”字面量“即常量,固定值,不可改变

简单的字面量有两种:数字、字符串

  1. 数字

    数字的字面量非常简单,直接写,不需要任何符号,如:

    alert(888)//数字不需要加""
    
  2. 字符串

    字符串的字面量也很简单,但是需要加上""

两者的区别:100是数字,"100"是字符串

总结

字面量都可以直接使用,但一般不会直接使用字面量

02、变量

概论

变量:变量可以用来保存字面量 ,而且字面量的值可以任意改变

变量的定义与赋值

js中使用var关键字来声明一个变量,如

var a = 100; //赋值声明
var b; //单纯的声明,在声明没有赋值的情况下,默认赋值为undefined
c = 100 //默认如果没有加var进行赋值,会在全局中创建一个变量

PS:在JavaScript中,永远都是用var来定义变量(在ES6之前)

变量的命名规范

变量名只能由英文字母、数字、下划线、美元符号$构成,且不能以数字开头,并且不能是JavaScript保留字

保留字:

abstract、boolean、byte、 char、 classconstdebugger、double、 enumexportextends、 final、float、goto
implementsimport、int、interface、long、native、packageprivateprotectedpublic、short、staticsuper、synchronized、throws、transient、volatile

1.建议用驼峰命名规则: getElementByld/matherAndFather/aaaOrBbbAndCcc
2.变星命名必须以字母或是下标符号”"或者”$"为开头。
3.变量名长度不能超过255个字符。
4.变量名中不允许使用空格,首个字不能为数字。
5.不用使用脚本语言中保留的关键宁及保留字作为变量名。
6.变量名区分大小写(JavaScript是区分大小写的语言)。
7.汉语可以作为变量名。但是不建议使用。

03、标识符

标识符:在js中所有可以由我们自主命名的都可以称之为标识符

如:变量名、函数名、属性名都是属于标识符。

标识符命名规则与变量的一样

PS:标识符不能使用脚本语言中保留的关键字及保留字。如:

关键字

breakdoinstanceoftypeofcasenew
varcatchfinallyreturnvoidcontinue
switchwhiledefaultifthrowdelete
tryfunctionthiswithdebuggerfalse
nulltrueinfor

保留字

classenumextendssuperconstexport
importimplementsletprivatepublicyield
interfacepackageprotectedstatic

04、变量声明提升

JavaScript在解释执行之前,有预编译的过程会将变量声明提升到最前面,但是不会将赋值提升

var a = "100"
var b;
console.log(a)
//在声明没有赋值的情况下,默认赋值为undefined
console.log(b)
//没有声明直接报错
console.log(c)
//JavaScript在解释执行之前,有预编译的过程会将变量声明提升到最前面,
//但是不会将赋值提升,所以上面的输出不会报错但输出为undefined
var c = 100

05、变量的数据类型

变量可以储存数字、字符串等。变量会自动根据储存内容的类型不同,来决定自己的类型。

在js中一共有六种数据类型

  • 基本数据类型(值类型):String( 字符串)、Number(数值)、Boolean(布尔值)、Null(空值)、Undefined(未定义)
  • 引用数据类型(引用类型):Object(对象)

PS:内置对象function、Array、Date、RegExp、Error等都属于Object类型。也就是说除了五种基本数据类型以外,其他的都称之为Object类型

数据类型之间最大的区别:

  • 基本数据类型:参数赋值的时候,传数值
  • 引用数据类型:参数赋值的时候,传地址

06、String字符串

代码如下:

var a = "asfsdf";
var b = "123456";
var c = "天气不错";
var d = "";

console.log(typeof a)
console.log(typeof b)
console.log(typeof c)
console.log(typeof d)

输出内容如下:

string
string
string
string

注意事项

  1. 在js中,字符串需要使用""或’'引起来,但是不能混用,错误示范如:

    var a = "123456'
    
  2. 引号不能嵌套:双引号里面不能再放双引号,单引号里面不能再放单引号。但单引号里面可以嵌套双引号,反之亦然

  3. 转义字符:在字符串中我们可以使用 \ 作为转义字符,当表示一些特殊符号时可以使用 \ 进行转义

    • \"表示"
    • \' 表示’
    • \n表示换行
    • \r表示回车
    • \t表示制表符
    • \b表示空格

将其他数值转换为字符串有三种方式

  • 拼串
  • toString()
  • String()

07、typeof运算符

typeof()表示”获取变量的类型“,返回的是小写,写法如下:

typeof 变量

返回结果:

  • typeof 数值 的返回结果:number
  • typeof 字符串 的返回结果:string
  • typeof 布尔型 的返回结果:boolean
  • typeof undefined 的返回结果:undefined
  • typeof null 的返回结果:object

在JavaScript中,只要是数,都是number数值型。无论整浮、浮点数(小数)、无论大小、无论正负,都是number类型

08、Number数值型

在JavaScript中所有数值都是number类型,包括整数和浮点数。

数值范围

由于内存限制,ECMAScript并不能保存世界上所有的数值

  • 最大值:Number.MAX_VALUE,这个值为:1.7976931348623157e+308
  • 最小值:Number.MIN_VALUE,这个值为:5e-324

如果使用number表示的变量超过最大值,则会返回Infinity

  • 无穷大(正无穷):Infinity
  • 无穷小(负无穷):-Infinity

PS:typeof Infinity返回的结果是number

NaNNaN()函数

  1. NaN:表示一个特殊的数字,表示Not a Number,非数值。如:

    console.log("aaa"/8) //输出结果为NaN
    

    PS:typeof NaN返回的结果为number

    Undefined与任何数值计算的结果都为NaNNaN与任何数值都不相等,包括NaN本身

  2. isNaN():任何不能被转换为数值的值,都会让这个函数返回true

    isNaN(NaN) // true
    isNaN("123") // true
    isNaN(123) // false
    

浮点数的运算

js中,整数的运算基本可以保证精确度;但是小数的运算可能会得到一个不精确的结果。所以千万不要用js进行对精确度要求比较高的运算

如:

var a = 0.1 +0.2
console.log(a) //输出结果0.30000000000000004

上方代码中,打印结果并不是0.3 ,而是0.30000000000000004
我们知道,所有的运算都要转换成二进制去计算,然而,二进制是无法精确表示1/10的。因此存在小数的计算不精确的问题。

连字符和加号的区别

+可能是连字符也可能是数值的加号,如:

console.log("a"+"b"+"c") //输出结果abc
console.log(1+2+3) //输出结果6

总结:如果+两边都是数值,此时就是加号,否则就是连字符

09、隐式转换

例子:"2"+1得到的结果是字符串,但是"2"-1得到的结果却是1

原因:计算机自动帮我们进行了"隐式转换"

-*/%这几个符号会自动进行隐式转换,如:

var a = "4" + 3 - 6
console.log(a) // 输出结果为37

PS:虽然计算机会自动的帮我们进行隐式转换,但是在实际中最好自己完成转换,使程序更具有可读性

10、Boolean布尔值

true和false。主要用来做逻辑判断。

布尔值可以直接使用,不用加""

var a = true
console.log(typeof a) //输出结果boolean

11、null和undefined

null:空值

一个专门用来表示为空的对象(如 var a = null )。注意是专门用来表示空对象

  • Null类型的值只有一个,就是null。如 var a = null
  • 使用typeof检查一个null值时,会返回一个object

undefined:未定义

声明了一个变量,但未赋值(如 var a;),此时他的值就是undefined

  • Undefined类型的值只有一个,就是undefined
  • 使用typeof检查一个undefined时,会返回一个undefined

null与undefined有很大的相似性,如:

console.log(null == undefined) //输出结果为true

但是

console.log(null === undefined) //输出结果为false

二者虽然相似,但还是有一定的区别,其中一个区别就是:和数字进行运算时,10+null结果为:10;10+undefined结果为:NaN

  • 任何数据类型和undefined进行运算,其结果都是NaN
  • 任何值和null进行运算,null可以看做0进行运算

12、变量值的传递(赋值)

语句:

a = b

将b的值赋给a,b不变

将等号右边的值,赋给左边的变量;等号右边的变量,值不变。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值