对象:
javascript中的对象分为3种:自定义对象,内置对象,浏览器对象。
JavaScript 中的所有事物都是对象:字符串、数字、数组、日期,等等。
在 JavaScript 中,对象是拥有属性和方法的数据。
属性是与对象相关的值。
方法是能够在对象上执行的动作。.关键词() 举例:汽车就是现实生活中的对象。
汽车的属性: car.name=Fiat 名称
car.model=500 型号
car.weight=850kg 重量
汽车的方法: car.start() 启动
car.drive() 驾驶
car.brake() 刹车
car.color=white 颜色
Object对象
创建对象
var 对象名称=new Object();
设置对象属性
对象名称.属性名=值;
设置对象方法
对象名称.方法名=function(){ }
调用对象属性
对象名称.属性名
调用对象方法
对象名称.方法名()
String对象
创建String对象
var strOb = new String("abcefg");
var strOb = String("abcefg");
var strOb = "abcefg";
属性
length (字符串长度)
为了方便操作基本数据类型,js提供了三个特殊的引用类型:string、,Number,Boolean
方法
1.子字符串位置
indexOf(string,[index]) //返回子字符串abc在字符串中第一次出现的位置(从0开始计算),不存在返回-1
string : 查找的字符串的内容,必填项
index:开始查找位置,可有可无
返回值:返回值是查找到的子字符串的位置(下标),默认情况下,返回的是第一个被查找到的内容;如果被查找的内容不存在,则返回-1
2.lastIndexOf(string,[index]) //返回子字符串abc在字符串中最后一次出现的位置
string :子字符串,查找的字符串的内容,必填项
index:开始查找位置,可有可无
返回值:返回值是查找到的子字符串的位置(下标),默认情况下,返回的是第一个被查找到的内容;如果被查找的内容不存在,则返回-1
slice(start,end)
获取字符串的某个部分 截取是前包含,后不包含
start 表示开始位置,从0开始到正无穷
end 表示结束位置,可以为正值,也可以为负值
截取
1.substr(起始位置,[截取长度]) //截取不写则代 表截取到字符串未尾 起始位置:可以自定义,从0开始
2.截取长度:可以是一个数字,还可以不写;如果不写长度,表示截取到字符串的末尾
3.返回值:截取出来的字符串 substring(起始位置,[结束位置]) //不包括截取结果的右边界字符
4.起始位置:是一个下标值,不能为负值
5.结束位置:是一个下标值,不能为负值(不包括截取结果的右边界字符)
替换
replace('子字符串1','子字符串2') //将字符串中子字符串1替换为子字符串2,
在替换的时候要注意有些字符是需要加转移字符\,不然会把它认为成其他字符。例如“ *”在替换的时候要注意有些字符是需要加转移字符\,不然会把它认为成其他字符。例如“ *”
1.获取指定位置的字符 charAt(n) 默认为第一个字符 n 表示的是下标,范围是 0-正无穷,不能使用负值 小括号里只能有一个参数
2.获取指定字符的ASCII编码 str.charCodeAt()
3.String.fromCharCode() 根据ascii返回对应的字符
转换大小写 toLowerCase() toUpperCase()
toLowerCase() 小写
toUpperCase() 大写
var str1 = 'HelloWorld';
var getStr1 = str1.toLowerCase(1);
var getStr1 = str1.toUpperCase(1);
console.log(getStr1);
将字符串分割为数组 split(分割符,[返回数组的最大长度])
分隔符:是一个字符串类型 或者是 正则表达式
返回值:数组
显示字符串效果 bold() 加粗
italics() 斜体
strike() 删除 f
ontcolor('#f00') 字符串颜色
fontsize(1-7) 字符串大小
sup() 上标标签
sub() 下标标签
设为超链接
案例:string方法相关案例
扩展:创建一个按钮,点击上传图片,判断上传的文件是否是一张图片
function suffix(element) {
var str = element.value;
var suffix = str.slice(str.lastIndexOf('.')+1);
if(suffix=='png' || suffix=='pneg' || suffix=='jpg' || suffix=='jpeg' || suffix=='gif'){
return true;
}else{
return false;
}
}
var inp =document.querySelector('#inp');
var btn =document.querySelector('#btn');
btn.onclick =function(){
var bool = suffix(inp);
if (bool){
alert('文件格式正确');
}else{
alert('文件格式有误')
}
}
面试题:编写一个函数,按下面的输入内容和输出接结果编写
function strChange(arr) {
var arr1 = arr.replace(/[*]/g,'-')
var add = arr1.split('-').map(word =>{
return word.charAt(0).toLowerCase() + word.slice(1);
console.log(add);
}).join('-');
return add;
}
var resultStr = strChange("Hello*Books*world*hello");
console.log(resultStr ) // 返回 “hello-books-world-world”
实现函数:查找子字符串出现的次数 传入:”abcabcabc”,”abc” 返回:3
function counts(str,sst) {
var index = str.indexOf(sst);
var num = 0;
while(index !== -1){
num++;
index = str.indexOf(sst,index+1);
}
return num;
}
var n = counts('abcabcabc','abc');
console.log('abc一共出现了'+n+'次');
写一个函数,对传入的字符串中每个单词的首字母大写,
调用:capitalize(‘the quick brown fox’)
返回:The Quick Brown Fox
var arr = 'the quick brown fox';
function capitalize(str) {
var arr = str.split(' ');
for(var i = 0; i < arr.length;i++){
arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].slice(1);
}
return arr.join(' ');
}
console.log(capitalize(arr));
把字符串翻转 "kjihgfedcba"
var str = "abcdefghijk";
var resStr = str.split('').reverse().join('');
console.log(resStr);
找出以上字符串中出现次数最多的字符和出现的次数
var str = 'abaasdffggghhjjkkgfddsssss3444343';
var count ={};
for(var i = 0;i < str.length;i++){
var char = str[i];
if(count[char]){
count[char]++;
}else{
count[char] = 1;
}
}
var maxCount = 0;
var maxChar;
for(var char in count){
if(count[char] > maxCount){
maxCount = count[char];
maxChar = char;
}
}
console.log('出现次数最多的字符是:', maxChar);
console.log('出现的次数是:', maxCount);
查找指定字符是否在以上字符串中存在,如:i,c ,b等
function check(str,char) {
for(var i = 0; i < str.length; i++){
if(str[i] == char){
return '包含';
}
}
return '不包含';
}
var str = 'abaasdffggghhjjkkgfddsssss3444343';
console.log(check(str,'i'));
console.log(check(str,'c'));
console.log(check(str,'b'));
把字符串翻转 "kjihgfedcba"实现函数:查找子字符串出现的次数Date
对象
创建Date对象
var dateObj=new Date();
方法
1.将日期转为字符串
toLocaleString()
toLocaleDateString()
toLocaleTimeString()
定时器
setInterval(函数体,时间(毫秒),参数(传递给函数的参数)
扩展:1. 封装一个函数,输入任意一个数,都能让这个数组从大到小进行排序 (冒泡排序)
function sort(arr) {
for(var i=0;i<arr.length-1;i++){
for(var a=0;a<arr.length;a++){
if(arr[a]<arr[a+1]){
temp = arr[a];
arr[a]=arr[a+1];
arr[a+1] = temp;
}
}
}
return arr;
}
console.log(sort([4,5,8,6,7,2]));
扩展2:把转成数字以后,最大值判断出来:300
var newArr = [];
for(var i = 0; i < arr.length; i++){
if(!isNaN(parseFloat(arr[i]))){
newArr.push (parseFloat(arr[i]))
}
}
var arr1 = newArr.sort(function(a,b){
return b - a;
})
console.log(arr1[0]);
扩展3:编写程序,获取数组中的最大值 var arr = [1, 2, 2, 3];
function getMax(arr){
var max = arr[0];
for(var i=1;i<arr.length;i++){
if(arr[i]>max){
max = arr[i];
}
}
return max;
}
console.log(getMax([6,3,8,23,45,1]));
扩展4:统计数组arr中元素item出现的次数
var arr = ['item',10,23,'jack','item','pop','item'];
var num =[];
for(var i = 0; i < arr.length; i++){
if(arr[i] == 'item'){
num++;
}
}
console.log(num);