JavaScript-变量+数据类型+三大调试方式

(可理解为一个容器,容器存储数据,变量临时存储在内存中,程序关闭,内存释放)

变量

  1. var 声明定义变量
  2. 变量名称

变量命名:数字 字母 下划线 $(不推荐) 严格大小写

不能以数字开头 不能用关键字,保留字

  1. = 赋值符号
  2. 表达式 执行结果是具体的数值数据
  3. ;每行代码以;结束

变量的作用域变量的作用范围

全局变量:定义在函数外的变量,函数内外都能调用

        全局变量污染:(绝对杜绝!)

在函数内部对全局变量赋值:

        在函数内 如果没有变量a,但对a有赋值a=100;        

        赋值语句升级为变量的声明语句

例:函数test中的age变量前面没有使用 var 声明,解释器会认为它在test的上一层定义的,如果在上一层未有找到定义,它的“父亲”它会依次向上寻找直到找到了window这个祖先,此时age会被挂载到window对象下成为一个全局变量

var name = zhangshan;   function test(){    age = 20;   }

局部变量:定义在函数内的变量/形参,只在函数内能调用

数据类型(变量没有数据类型,变量存储的数据才有数据类型)

基本数据类型

        布尔类型:bool(返回true/false)

        字符串类型:str/string(数字 字母 符号组成的一串数据,其内容要用定界符(' ' , " " , ‘ ’ )包裹)

var str1='true'; //在变量中存储字符串类型'true' t r u e四个字符

定界符:单引号双引号不能嵌套自身 (实际项目若不需解析,则推荐使用单双引号)

                不能换行,不能解析变量

       字符串中没有代码运算,只输出字符 解决方式:document.write('内容'+a+'内容')

       解决方式console.log(eval('1+2'));//eval会将字符串按照js程序运行

                反引号支持换行(document.write中界面显示空格,console中显示换行)

                                可以解析变量:用${}包裹变量 document.write(’内容${a}内容‘)

                                支持运算 document.write(’${1+2}‘)

                                低版本ie不支持

数值类型:

        整数(正负整数 0):int/integer

                                        整数进制存储(输入)方式,默认为十进制

                                        二进制 在数值前添加 0b/0B

                                        八进制 在数值前添加 0o/0O

                                        十六进制 在数值前添加 0x/0X

                                        输出默认为十进制,可按以下方式指定进制输出

                                        js整数的安全范围,若整数位数超出安全范围,则产生误差

        浮点数(正负小数):float

                有效数值:整数+小数 (左起非0的数字开始计算,最多17位,超出部分四舍五入保留)

                浮点数的 误差 / 溢出 / 精度丢失:

                                js中 浮点数以近似值的形似存储,计算时会有误差 / 溢出 / 精度丢失(有时会体现 有时不会)

                        例 :0.5 存储的是0.500000002

                        浮点数的比较判断:因为浮点数的误差 / 溢出 / 精度丢失存在,若使用浮点数直接运算比较,执行结果出错

科学计数法:属于浮点数的表示方式 不管其最终执行的数值是多少 都是浮点型2e6 3e-1

         NaN(Not a Number):运算结果是数值类型但不是一个具体的数字 例:console.log('北京-100'),可以作为数值直接赋值

        !有NAN参与的运算 执行结果还是NAN

        !两个NaN比较的结果永远是false

=== 全等比较 判断 === 两侧内容 数据类型和数值 都相同结果是 true 不同结果是 false 

null 空值

undefined 没有正确赋值 给了变量但没有赋值

判断数据类型

typeof()

        整数,浮点数,科学计数法 ,NAN 执行结果都是 number

        null,数组,对象执行结果都是object

Object.prototype.toString.call()

null 数组 对象 都可以区分数据类型 [object Null] [object Array] [object Object]

整数 浮点数 科学计数法 NaN 还是[object Number]

数据类型转化(弱类型 :一个变量可以存储任意类型的数据)

数据转化方式

自动转化/隐式转化(程序执行时自主完成转化)

自动转化为字符串类型

什么时候转化:字符串拼接时 数据类型自动转化为字符串 (从左到右按照顺序拼接 先乘除后加减)

自动转化为数值类型

什么时候转化:执行算术运算时 参与运算的必须是数值类型

转化原则:true —— 1

                        false —— 0

                        null —— 0

                        undefined —— 无确定值 返回NAN

                        空字符串‘’、纯空格字符串‘ ’ —— 0

                不符合数字语法规范——返回NAN 例:console.log(100-'北京')

                只有加号’+‘执行拼接,其他运算符都只执行算术运算

自动转化为布尔类型

                什么时候转化:if判断 逻辑运算 三元运算

                转化原则:0 0.000.... null undefined NAN ' ' 转化为 false

                其他都转化为 true

强制转化(人为)

                转化原则与自动转化相同

                强制转化为布尔类型 :Boolean(变量/数值) 转化的结果可以用变量存储

var int2 = 9; var res1 = Boolean(int2);//true

强制转化为字符串类型:

String( 变量 / 数值 )        变量.toString()        

 只有变量可以用,如果变量存储的是整数,还可以用此函数进行进制转换 ,进制范围是 2 - 36,null和undefined不支持

强制转化为数值类型:

parseInt() 从左起符合整数语法规范 获取整数部分(若左起第一个内容不符合整数规范,则转化为 NAN)

parseFloat() 获取浮点数(保留小数,只能识别一个小数点)

Number() 转化为对应数值 若是不符合数值规范 则转化为NAN

! 注:parseInt不能识别科学计数法 parseFloat可以

console.log(parseInt('2e4')) // 被看作字符串 返回2 
console.log(parseFloat('2e3')) // 可以识别科学计数法 返回2000 console.log(parseInt(2e4)) //返回20000 
console.log(parseFloat(2e3) //可以识别科学计数法 返回2000 console.log(parseFloat(9.89.09)//9.89

引用数据类型/复杂数据类型

JavaScript三大调试方式 (js的调试方式,不是最终执行方式,是暂时查看程序执行结果的方式)

window.alert(内容/变量) / alert()   

window.prompt(‘内容’) 输入框 输入数据 !

document.write(内容/变量)

console.log() 一次可以输出多个数据,用逗号间隔

var a = 100; var b = 2;
window.alert(a)/alert();//解析变量a中的数据 输出到提示/警示框中 
document.write('内容')//在页面中显示 
console.log(a,b);//在页面控制台的console中显示

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值