JavaScript三部分
- ECMAScript(ES):规定了JS的一些基础核心的知识(变量,数据类型,语法规范,操作语…)3/5>>6/7
- DOM:document object model(文档对象模型),里面提供了一些方法和属性,可以让我们操作里面的元素。
- BOM:browser object model(浏览器对象模型)里面提供了一些属性和方法,可以让我们操作浏览器。
变量和常量
变量:值可以变
常量:值不可变
//JS中定义变量方式:
//var 变量名=数值;(在ES6中定义变量用let)
var num = 10;//让原来的num的值修改为10;
var str = 'MAX';
//
//JS中定义常量方式:
//const 常量名=数值;
const num = 10;
const str = 'MAX';
JS命名标准
常用驼峰命名法命名;
常见的命名:
info:信息(information)
init:初始化(initialization)
add / insert :添加,创建
create :插入
rm (remove) / clear / del / delete: 删除
update: 修改
get / query / select: 查询获取
….
注:命名时可以使用数字,字母,_ ,$,但是数字不能放在第一位。
var $xxx;//一般都是应用Jquery获取到的值
var _xxx;//一般这种情况代表变量是一个全局或者是公用的变量
JS中的数据类型
- 基本数据类型(值类型)
number:数字
string:字符串
Boolean:布尔
null:空对象指针
undefined:未定义- 引用数据类型
- object 对象数据类型
{}普通对象
[]数组
/^&/正则
……- function 函数数据类型
注:
1.单引号和双引号包裹起来的都是字符串
2.布尔类型只有两个值(true, false)
3.null , undefined
5.对象在{}内
6.数组在[]内
正则表达式:/^-?([1-9]\d+))(.\d+)?&
……
JS如何检测数据类型(4种)
- typeof:检测数据类型的运算符
- instanceof:检测某个实例是否属于这个类
- constructor:获取当前实例的构造器
- Object.prototypye.toDtring.call:获取当前实例的所属类信息
1.typeof
使用 typeof 检测,返回的结果是一个字符串,字符串中包含的内容证明了值是属于什么类型的。
typeof num=12;//num=>"number"
typeof 12;//"number"
[局限性]:
1.typeof null 不是’null’而是’object‘:null虽然是一个单独的数据类型,但它原本意思是空对象指针,浏览器使用typeof 检测的时候会将其按照对象来检测。
2.使用 typeof 无法具体分析出到底是正则还是数组,因为返回的结果都是’object’。
布尔
Boolean( )
将其他数据类型的值转换为布尔类型:
只有”0,NaN,空字符串,null,undefined“五个数据值转换为布尔类型的false,其余的都会变为true
补充:“ != ” 不等于,同时 “ ! ” 还表示取反,“!!”表示对取反取反,也就是等同于Boolean类型
字符串
单引号和双引号包裹起来的都是字符串
常用方法:
charAt charCodeAt
substr substring slice
toUpperCase to LowerCase
split
replace
match
……
number数字
零,正负数,小数,都是number;
JS中多增加了一个number类型的数据:NaN
NaN:
不是一个数,但是属于number类型
NaN==NaN ; // false,NaN 和其他任何值都不相等
isNaN():
用来检验当前这个值是否是非有效数字,如果不是有效数字则检测结果为 true ,反之有效数字为 false。
isNaN(0) //=>false
isNaN(NaN) //=>true
isNaN('12')//=>false
//当我们使用isNaN检测值的时候,检测的值不是number类型的,浏览器会先把默认的值转换为number类型,再去检验
isNaN([])//=>false
isNaN(true)//=>false
Number():
把其他数据类型转换为number类型的值
Number('12') // 12
Number('12px')// NaN;在使用Number转换的时候只要字符串中只出现一个非有效的数字字符,最后结果都为NaN。
Number(true)//=>1
Number(false)//->0
Number(null)//=>0
Number(undefined)//=>NaN
Number([])//=>把引用数据类型转化为number,首先需要把引用数据类型转化成字符串(toString),再把字符串转换成number
注:只有全部为有效字符才能转化为数字,否则都会转换为NaN
例如:
Number([12])=>[12]->'12' '12'->12
Number([12,23])=>[12,23]->"12,23" "12,23"->NaN
Number({laowang})=>NaN
Number({ })=>NaN
parseInt( )
也是把其他数据类型转换为number和Number,方法在处理字符串的时候有所区别
Number('12')->NaN;
parseInt('12px')->12;
parseInt('12px13')->12
//提取规则:从左往右依次查找有效数字字符,直到遇见非有效字符为止(无论后面是否还有,都不找了)把找到的转换为数字
parseInt('12.5px)->NaN
paseFloat( )
在paseInt的基础上可以识别小数点
paseInt('12.5px')->12
paseFloat('12.5px')->12.5