javascript基础(2020更新版一)

该博客所有文章已兼容手机排版

javacript中数据类型可概括为:5基础1引用

5种基本数据类型:

  • number
  • string
  • boolean
  • null
  • undefined

1种引用类型(object):

  • 普通对象 {},
  • 数组对象 [],
  • 正则对象 /^$/,
  • 日期对象 new Date(),
  • 数学函数对象 Math,
  • 实例对象 等等
  • (这个比较特殊)function:函数也是对象,它有自己独特的慨念。

ES6新增

Symbol: 创建唯一值。

简单来说各个类的实例都是对象

number类型中有个有趣好玩特殊的符号:NaN (number类型)
typeof 检测数据类型 typeof NaN => “number”
NaN(Not a Number):不是有一个有效数字。
NaN和谁都不相等
NaN = NaN => false; 自己不等于自己
NaN = 1 => false;
NaN = ‘a’ => false;
所以不能拿NaN来去检测数字
js种有种方法isNaN,它是用来检测是否是无效数字。
无效的=>true, 有效的=>false;
isNaN(’’),在v8底层隐式用的是number();来将其转换。

重点:为什么我们有的时候从服务器后台拿数据到前端渲染时,数据会变成NaN:把其他数据类型转化为number类型的时候,不能转换就是NaN

number类型中的 NaN 一定要搞清楚

对象中的键值对


```javascript
Object
let a = {
	a : 10
}
let b = function(){};
let obj = {
	0 : 100,
	true : 'xxx'
};
obj [a]  =  1000;
obj [b]  =   2000;
//输出
{
	0100true : ‘xxx',
	[object object] : 1000,
	[object object] : 2000
}

这里讲的是对象中的 键值对 中的 属性名 一定是 字符串类型
不可以将 引用类型的数据 作为 对象键值对中的属性名
上面这个例子就是a是个对象属于引用类型
因为对象的属性名一定不能是引用类型
默认会把引用类型值转化为字符串处理 [object object]

let a={x: 100};
let b={y: 200};
let obj={};
obj[a] = '你好'//对象中的属性名会默认tostring();
//输出
{x:100}.tostring() 
=[object object] =’你好‘
obj[b] = '你不好'{y:200}.tostring() 
=[object object]=’你不好‘。

重点考察:对象的属性名一定不能是引用类型。

数组和对象

考点: 数组和对象有什么区别和关系。

①数组就是对象
②对象中用的最多的就是数组。
③数组中 属性名 是有规律的逐一递增的代表位置的数据的索引。

数组中常用的属性和方法:

  1. concat(arrayX)(具体的值/数组对象):连接两个或者多个数组。

    (返回值:返回新的数组)
    
  2. join(separator)(分隔器):将数组中每个元素转化为字符串,然后通过传入的分隔符把字符串连接起来。

    (返回值:返回一个字符串)
    
  3. push(el,el,el)(一个/多个元素):向数组末尾添加一个/更多元素,直接修改原数组。

    (返回值:新的数组长度)
    
  4. pop():删除数组中最后的元素,把数组长度-1,并返回删除元素的值。

  5. shift():删除数组中第一个元素,并返回第一个元素的值。

    请注意:
    	原数组上进行修改
    
  6. unshift(el,el,el…):向数组首位添加一个/多个元素。

    (返回值:返回原数组新的长度)
    
    请注意:
    	原数组上进行修改
    
  7. slice(start,end)(下标选取,下标结束选取,左闭右开):向数组截取从start下标开始的元素。

    (返回值:返回一个新的数组)
    
    请注意:
    	该方法并不会修改数组,
    	而是返回一个子数组。
    	如果想删除数组中的一段元素,
    	应该使用方法Array.splice()。
    
  8. splice(index,howmany,el/elx)(下标,删除个数,添加新元素):用于插入、删除或替换数组的元素。

    请注意:
    	splice() 方法与slice() 
    	方法的作用是不同的,
    	splice() 方法会直接
    	对数组进行修改。
    
  9. reverse():颠倒数组中的元素的顺序。

    请注意:原数组上进行修改
    
  10. sort(sortby)(sortby必须是函数):对数组的元素进行排序。

请注意:
	原数组上进行修改
	
请注意:
	sort()只对字母排序有效,
	但是对数字排序效果效果并不理想,
	想要实现对数字排序,必须引入函数。
  1. toString():将数组转化为字符串,并返回结果,元素之间逗号分隔。
(返回值:返回值与没有参数的
	 join()方法返回的字符串相同)

ES6新增数组方法

flat():数据扁平化操作,更加便捷对数据进行操作。
set():数组去重操作。

字符串中常用属性和方法:

  1. charAt(index)(某字符在字符串中的下标):方法可返回指定位置的字符。

  2. concat(stringX)(一个/多个字符串):用于连接两个或多个字符串。

    请注意:
    	concat() 方法将所有参数
    	转换成字符串,
    	按顺序连接成字符串 ,
    	并返回连接后的字符串.
    	
    请注意:
    	stringObject 本身并没有被更改,
    	stringObject.concat()
    	与 Array.concat() 很相似.
    
  3. indexOf(searchvalue,fromindex)(需要检索的字符串值,规定在字符串中开始检索的位置):方法可返回某个指定的字符串值在字符串中首次出现的位置

    (返回值:如果要检索的
    	字符串值没有出现,
    	则该方法返回 -1) 
    	
    	请注意:
    		indexOf() 方法对大小写敏感!
    
  4. lastIndexOf():作用与indexOf()相同,只是它是从后往前进行查找

  5. replace(reg,replacement):用于在字符串中一些字符替换另一些字符,或者替换一个与正则表达式匹配的字符

    (返回值:一个新的字符串,
    	使用replacement替换了reg
    	的第一次匹配得到的)
    
  6. slice(start end):提取字符串中的某些部分,并以新的字符串返回被提取的部分

    请注意:
    	String.slice() 与Array.slice() 相似.
    
  7. split(separator,howmany)(字符串/正则表达式,选择多少个):将一个字符串分割成字符串数组。

    请注意:
    	String.split() 执行的操作与
    	 Array.join 执行的操作是相反的.
    
  8. substring(),tolowercase(),toupcase();等等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值