一.day06作业
// 1.编写函数map(arr)把数组中的每一位数字都增加30%。
var arr = [1,2,3,4,5];
function map(a){
for(var i=0; i<a.length; i++){
a[i] *= 1.3;
}
}
map(arr);
console.log(arr);
// 2.编写函数has(arr,60)判断数组中是否存在60这个元素,返回布尔类型。
// var flag = has(arr,9);
var arr = [1,2,3,4,5];
function has(a,x){
for(var i=0; i<a.length; i++){
if(a[i] == x){
return true;
}
}
return false;
}
console.log(has(arr,15));
二.json
①json对象:描述数据的一种结构类型,将若干繁杂的数据封装成一个对象,统一管理
②a.json对象的定义:由{}括起来,和若干键值对构成,每两个键值对用逗号隔开
var stu = {
key1:value1,
key2:value2,
...
}
b.json对象属性的访问
1.点运算符
stu.name = "杨超越";
console.log(stu.name,stu.age,stu.gender);
2.下标法:[]中必须得是字符串
console.log(stu["name"]);
var str = "name";
console.log(stu[str]);
三.严格模式
ES5:严格模式下,变量必须定义才能使用(也没啥用,解决不了先定义的问题)
"use strict";//严格模式的字符串
四.字符串的定义形式
// a.字面量:内置基本类型
var str = "hello world";
console.log(str,typeof str);
// b.构造方法:引用类型
var str1 = new String("hello world");
console.log(str1,typeof str1);
五.ascii码表
每个字符都有一个对应的编码,这个表就是ascii码表
0~255对应着255个字符
//97 "a" //65 "A" //48 "0" //13 回车//32 空格
ascii码值无条件和字符等价
//length:字符串的长度
// var str = "helloworld";
// console.log(str.length);
//charAt(索引):获取索引对应的字符
// console.log(str.charAt(1));//str[1]虽然可以,但是不建议
//charCodeAt(索引):获取索引对应字符的asc码
// console.log(str.charCodeAt(1));
//统计一个字符串,"abcAA123 +!",
//其中出现的大写字母,小写字母,数字,空格和其他字符出现的个数
var bigChar = 0;
var smallChar = 0;
var num = 0;
var space = 0;
var other = 0;
var str = "abcAAAAAAA123 +!";
for(var i=0; i<str.length; i++){
if(str.charAt(i)>='A' && str.charAt(i) <= 'Z'){
bigChar++;
}else if(str.charAt(i)>='a' && str.charAt(i) <= 'z'){
smallChar++;
}else if(str.charAt(i)>='0' && str.charAt(i) <= '9'){
num++;
}else if(str.charAt(i) == " "){
space++;
}else{
other++;
}
}
console.log(bigChar,smallChar,num,space,other);
六.字符串api
①charAt(索引):返回值索引对应的字符
// 参数:(下标)
// 返回值:返回值索引对应的字符
②charCodeAt(索引):返回值索引对应的字符的asc码值
// 参数:(下标)
// 返回值:返回值索引对应的字符的asc码值
③String.fromCharCode:返回asc值对应的字符
// 参数:(asc码值1,[asc码值2...])
//返回值:返回asc值对应的字符
//注意该方法通过类名调用
var str = String.fromCharCode('97','98');
console.log(str);
④indexof:查找目标数据,找到返回下标,找不到返回-1 (只能返回第一个
//参数:(目标数据)
//返回值:下标或者-1
⑤lastIndexOf("abc") 查找字符串最后一次出现的位置 如果没找到 返回-1
⑥replace(参数1,参数2):返回用参数2代替参数1后的字符串
// var str = "laowang de ge bi shi laowang";
// str = str.replace("laowang","古力娜扎");
// console.log(str);
⑦ //slice(起始位置,结束位置):返回区间字符串,左闭右开
// var str = "helloworld";
// console.log(str.slice(2,5));
⑧substring(起始位置,结束位置):返回区间字符串,左闭右开
// console.log(str.substring(2,5));
//slice和substring不同:slice参数支持负数,左开右闭
// console.log(str.slice(-5,-2));
⑨split:字符串分割函数,将分割的字符串存放在数组中
//参数:分隔符
//返回值:数组
// var str = "hello world 嘿 嘿 嘿";
// var arr = str.split("o");
// console.log(arr);
⑩大小写转换
console.log("HeiHei".toLowerCase());
console.log("HeiHei".toUpperCase());
七.回调函数
// function f1(){//第三方函数
// f2();//问题:无法在第三方函数中调用自己写的函数,因为第三方函数代码是闭源的
// }
// function f2(){//自己写的函数
// console.log("heihei");
// }
// f1();
//--------------------------
// 回调函数:一个被当做参数的函数,更多的意义不是被直接调用,而是被别人去间接使用
// function f1(f){//f == f2
// f(); // f() == f2()
// }
// var f2 = function(){
// console.log("heihei");
// }
// f1(f2);
//-------------------------------
// setTimeout:定时器,延时多少秒后执行
// 参数(回调函数,延迟的毫秒数)
var f = function(){
var oTest = document.getElementById("test");
oTest.style.backgroundColor = "greenyellow";
}
setTimeout(f,3000);