js基础以及数据类型

一.js基础

1.js产生于1995年
1946年第一台电子计算机产生,1952年中国引入第一台电子计算机
2. ECMA 欧洲计算机制造商协会
各大浏览器厂商将ECMA 作为各自javascript的实现基础
谷歌 webkit(开源的) 现在是Blink内核
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36
ie(edge) Trident内核
ie(11):User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.53 Safari/537.36 Edg/103.0.1264.37
火狐 Gecko内核
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:101.0) Gecko/20100101 Firefox/101.0
safari Webkit
opera Webkit内核 现在是Blink内核
3.javascript组成

  javascript
     |

| | |
ECMA Script DOM BOM

ECMA Script:规定了js的语法.类型.语句.关键字.操作符对象等
ES5
ES6 2015年6月
ES7-ES11
DOM:document object model 文档对象模型

BOM:browser object model 浏览器对象模型

4.Script代码可以放到html页面中任意位置
5.js代码由上至下执行

二.数据类型

弱类型语言—变量类型是由它所包含的"数据"决定的
字符串string
数值型number
布尔型boolean
undefined
null
object

1、数值型

// v1=20e500 //正无穷大
// console.log(v1)
// v1=-20e500 //负无穷大
// //js 整型最大表示范围 253—2-53

2.类型转换

(1)隐式类型转换:自动将一种数据类型转换到另一种数据类型的过程
console.log(“50”-“30”) //20 number
(2)显示类型转换(强制类型转换):需要手动转换到目标类型
将其他数据类型转换为数值型
Number()
console.log(Number(12.34)) //12.34
console.log(Number(true)) //1
console.log(Number(false)) //0
console.log(Number(“”)) //0
console.log(Number(NaN)) //NaN
console.log(Number(null)) //0
console.log(Number(undefined)) //NaN
paseInt()
console.log(parseInt(12.34)) //12
console.log(parseInt(0.12)) //0
console.log(parseInt(“23aa”)) //NaN
console.log(parseInt(true)) //NaN
console.log(parseInt(false)) //NaN
console.log(parseInt(“30e5”)) //30
console.log(parseInt(25,16)) //37
console.log(parseInt(25,8)) //21
console.log(parseInt(1001,2)) //9
console.log(parseInt(25,10)) //25

  paseFloat()
    console.log(parseFloat("23.34")) //23.34
    console.log(parseFloat("23.45.78")) //23.45

  NaN: not a number 非数值
  表示一个本来要返回数值的操作数而没有返回数值的情况
  NaN不等于任何数值

3.进制转换

(1)其他进制转换为十进制
paseInt(25,16)
parseInt(25,8)
parseInt(25,10)
parseInt(101,2)
(2)十进制转换为其他进制
v1=23
v1.toString(16)
v1.toString(8)
v1.toString(2)

4.常用方法

isNaN() //判断是否为非数值
1.任何涉及NaN的操作都返回NaN
console.log(NaN/8)
console.log(NaN+8)
console.log(NaN-8)
console.log(NaN*8)
2.NaN与任何值都不相等,包括它本身
console.log(NaN==NaN) //false
console.log(0/0) //NaN
isFinite() //判断是否是正负有穷
console.log(isFinite(200e5)) //true
console.log(isFinite(200e500)) //false

5.布尔值

true false
if(10>0){

}else{

}
if((10>5)==true){}
等价于if(10>5){}

类型转换
Boolean()

console.log(Boolean(23)) //true
console.log(Boolean(0)) //false
console.log(Boolean(“hello”)) //true
console.log(Boolean(“”)) //false
console.log(Boolean(null)) //false
console.log(Boolean(undefined)) //false
true false
数值型 非空 0
字符型 非空串 “”
undefined 返回false
null 返回false
object 任意对象返回的都是true

6.undefined类型

(1)变量只声明未赋值
var a
console.log(typeof(a)) //undefined
alert(a) //undefined

    alert(c)             //报错

(2)函数没有返回值,默认undefined
   function f1(){
        alert("hello")
    }
    var r=f1()
    console.log(r)

(3)调用函数时,应该提供参数但没有提供,该参数返回undefined
   function f1(a,b){
        alert(a)
        alert(b)
    }
    f1(3)

7.null 空类型

    var a=null
    document.write(typeof(a)) //object null是一种特殊的object

    var b={}
    b.a=23
    b.f1=function(){}
    b=null

8.object 对象类型

对象就是一定属性和方法的封装体,通过对象能够引用到这些方法和属性

9.*** typeof ***

(1) 如果是数值类型,typeof返回 number
console.log(typeof(1)) //number
console.log(typeof(NaN)) //number
console.log(typeof(Number.MAX_VALUE)) //number
console.log(typeof(Number.MIN_VALUE)) //number
console.log(typeof(Infinity)) //number

(2) 字符串类型,返回string
console.log(typeof(“123”)) //string

(3) 布尔类型,返回boolean
console.log(typeof(true)) //boolean

(4) 对象,数组,null,typeof返回object
console.log(typeof(window)) //object
console.log(typeof(document)) //object
console.log(typeof(null)) //object
console.log(typeof(Math)) //object
console.log(typeof([])) //object
(5) 函数类型,typeof返回function
console.log(typeof(Date)) //function
function f1(){}
console.log(typeof(f1))
console.log(typeof(eval))

(6) 没有定义的变量或undefined本身,typeof返回undefined
console.log(typeof©) //undefined
console.log(typeof(undefined)) //undefined

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秃头程序员-疯子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值