数据是程序运行过程中操作的对象(值)。
数据是有类型的:
var str = '0123456789'
str.slice(20)
str.slice(-2)
str.slice(4,2)
var str = '012345'
str.charAt(3) //'3'
str[0] = 'a'
简单数据类型
- number
- string
- boolean
- undefined
- null
- symbol 符号类型
复杂数据类型 - objcect
- array:是一种对象数据类型['a','b','c']
- object:是一种对象数据类型
{name:'张三',age:19}
- function:是一种对象数据类型。function(){}
- Math:是一种对象数据类型
- Date:是一种对象数据类型
- RegExp
- 等等
对象是什么
- 对象是复杂数据类型。
- 对象是属性和方法的集合。
- 属性= 属性名 + 属性值
- 请思考:字符串是对象吗?
创建字符串的方法
- 创建字符串直接量
var str = '0123456789'
- 使用构造函数创建字符串
var y = new String("abc");
包装对象
var len = str.length //length是属性,只有对象才有属性,str是对象吗?那你为什么会有属性。
为了方便操作基本数据类型,JavaScript 提供了三个特殊的引用类型:string (字符串)Number(数值) Boolean(布尔)
基本包装类型就是把简单数据类型包装成复杂数据类型,这样基本类型就有了属性和方法。它在执行完属性和方法后就会立即销毁。
事件注册的三种方法
目标对象:注册事件是为文档中的某个元素对象注册事件。可以是一个h2, p,ul,docuent等
-
通过标签的属性注册
-
通过元素对象注册(最熟悉)
方法:on + 事件名 比如:onclick onmuserover oninput -
通过addEventListener()方法注册
addEventListener()语法
字符串详解
var str = 'hello'
var str = new String('hello')
obj.addEventListener('click',function(){})
改造下面的事件为addEventListener注册
textarea.oncompositionstart = function(){
console.log('合成开始')
}
textarea.oncompositionend = function(){
console.log('合成结束')
}
字符串是什么 ?字符串的特点?
- 有一个或者0个字符组成,还是一种简单的数据类型
- 字符串的字符是不可变的
- 字符串的字符是有索引的
读取字符串的方法
- indeOf
列:
var str = "ad1d23"
console.log(str.indexOf("d"))//返回索引1
查询字符串⻓度
- 使用关键字length
var str = "ad1d23"
console.log(str.length)//6
连接字符串方法有三种:
- 使用加号连接
- string.concat() //连接字符串
- array.join() //数组转字符串
String.charAt()
定义:查询字符
示:查询str字符串的第五个元素
var str = "ad1d23"
console.log(str.charAt(5))//返回3
string.indexOf('')
定义:查询索引
示:查询“d”的索引
var str = "ad1d23"
console.log(str.indexOf("d"))//返回索引1
string.lastIndexOf()
定义:提取字符串
语法:
string.lastIndexOf('')
参数:没有参数。
string.slice(start, end)
定义:提取字符串
参数:
Start: 可选。提取字符串的起始位置(含头)
End:可选 。提取字符串的结束位置(不含尾)
string.subString()
定义:提取字符串
语法:
string.subString(start, end)
参数:
Start: 可选。提取字符串的起始位置(含头
End:可选。提取字符串的结束位置(不含尾)
string.subStr()
定义:提取字符串
语法:
string.subStr(start, length)
示列:
const str = 'hello'
str[0] //使用下标读取
string.subString()和string.slice的区别
示列:
const str = '0123456789'
//没有参数
str.slice() //'0123456789'
str.subString() //'0123456789'
//一个参数
str.slice(2) //'23456789'
str.subString(2) //'23456789'
str.slice(0) //'0123456789'
str.subString(0) //'0123456789'
str.slice(-2) //'89'遇到负值,从字符串末尾提取
str.subString(-2) //'0123456789'遇到负值,把负值看做0
//两z参数:
//情况1:start < end
str.slice(2,4) //'23'
str.subString(2,4) //'23'
str.slice(-4,-2) //'67'
str.subString(-4,-2) //''
str.subString(0) //'0123456789'
str.subString(0,0) //''
//情况1:start > end
str.slice(4,2) // ''
str.subString(4,2) // '23'
结论:
1. 对待负数:负数看做0
2. 头大尾小:头尾交换
charAt() 和 charCodeAt()区别
charAt(index) : 给定义索引,返回一个字符
charCodeAt(index): 给定索引,返回一个字符编码
字符编码
变成大写:str.toUpperCase()
变成小写:str.toLowerCase()
编码转字符:str.rromCharCode()
标识符的两种⻛格
- 烤串式: vip-login-btn(用中划线连接3个小写的单词)
- 驼峰式:vipLoginBtn (第一个单词小写,后面单词首字母大写)
小考题:
str = 'get-element-by-id' => 'getElementById'
网友评论