1.js的内置函数
(1)Global对象:是一个内部对象,目的是将全局方法集中在一个对象中,常规可以和windows对象混用
(2)String字符串对象:可用于处理或格式化文本字符串以及确定和定位字符串中的子字符串
①属性:
length 字符串的长度。
②方法:
.charAt(n) 找到位置在n(索引)上的字符。
.charCodeAt(n) 找到索引位置上的字符的编码:a=97,A=65。
.indexOf(“m”) 查找字符m在字符串中第一次出现的索引;如果没有找到返回-1。
.lastIndexOf(“m”) 查找字符m在字符串中最后一次出现的索引;如果没有找到返回-。
.split(“n”) 以字符n分割字符串,并返回一个数组,空字符串时分割每个字符,如果字符串中没有该字符,同样返回数组。
.substr(n,m) 截取字符串,从索引是n的位置开始截取,截取m个字符;如果只有一个参数n,那就是从n开始截取,截取到最后。
.substring(n,m) 截取字符串,从索引是n的位置开始截取,截取到第m个字符(m取不到); 如果只有一个参数n,那就是从n开始截取,截取到最后。
.toLowerCase() 把字符串中的字母转化成小写。
.toUpperCase() 把字符串中的字母转化成大写。
(3)Array对象
①属性:
.length 数组的长度;
②方法:
.concat() 连接内容或者数组,组成新的数组;
.join(n) 用n连接数组的每一项组成字符串,可以是空字符串;
.pop() 移除最后一个元素,并返回删除的数据;
.push() 在数组最后加入新的内容返回新的数组的长度
.reverse() 翻转数组;
(4)Math对象:是一个静态对象,提供基本数学函数和常数
Math.pow(n,m) n的m次方
Math.abs(n) n到原点的距离(n的绝对值)
Math.round(n) 四舍五入取整。
Math.floor(n) 向下取整
Math.ceil(n) 向上取整
Math.random() 返回0-1的随机数(取不到1)
(5)Date对象:启用基本存储器并取得日期和时间
toLocaleString() 以当前本地格式显示时间。
date.getFullYear() 获取date对象的年份。
date.getMonth() 获取月份(0-11)对应1-12月。
date.getDate() 获取日期。
date.getHours() 获取小时。
date.getMinutes() 获取分钟
date.getSeconds() 获取多少秒
date.getMilliSeconds() 获取毫秒数
date.getDay() 获取星期几(0-6)对应 周天至周六。
date.getTime() 从1970年开始到时间日期的毫秒值(时间戳)
date.setFullYear 设置年份
(6)window对象
alert()
confirm() 弹窗显示 “确定”,“取消”
prompt() 输入框
window.open(“链接”,“name”,“设置”);
2.自定义数组队列容器
(1)json数组
•格式说明:var json = {属性1:值1,属性2:值2,......}
•作用:快速定义封装一系列属性的对象,类似于对象定义封装
•优势:编写简单,内容直观
js循环创建并遍历json数组
var userinfo = {
user1:{username:"张三",pwd:"1231",age:24},
user2:{username:"李四",pwd:"1232",age:22},
user3:{username:"王五",pwd:"1233",age:19}
};
for(var attr in userinfo){
var obj = userinfo[attr];
for(var at in obj){
var value = obj[at];
}
}
(2) 数组声明方式
①格式说明:一维:var array = [值1,值2,值3,...];
二维: var array = [[值1,值2,值3],[值1,值2,值3],[值1,值2,值3],...];
var array = new Array();
var array = new Array(大小);
②作用:快速定义一个容器来装多个独立数据
③优势:效率高、操作简单
(3)自定义对象数组容器
var MyArray = function() {this.length = 0; //数组长度
for(var i = 0; i < arguments.length; i++) {
this[i] = arguments[i];
this.length++;
}
//增加元素
this.add = function(value) {
this[this.length++] = value;
}
//删除元素
this.remove = function(index) {
var x = this[index];
for(var i = index + 1; i < this.length; i++) {
this[i - 1] = this[i];
}
delete this[this.length - 1];
this.length--;
return x;
}
//插入一个元素
this.insert = function(value, index) {
for(var i = this.length; i >= index; i--) {
this[i] = this[i - 1];
}
this[index] = value;
this.length++;
}
//排序
this.sort_1 = function() {
for(var i = 1; i < this.length; i++) {
for(var j = 0; j < i; j++) {
if(this[j] <= this[i]) {
continue;
} else {
var v = this.remove(i);
this.insert(v, j);
break;
}
}
}
}
//数组连接
this.concat = function(arr2) {
for(var i = 0; i < arr2.length; i++) {
this.add(arr2[i]);
}
}
//字符串拼接
this.join = function(char){
var arr = new MyArray("");
for(var i = 0;i<this.length;i++){
arr.add(this[i]);
arr.add(char);
}
arr.remove(arr.length);
return arr;
}
//数组反转
this.reverse = function(){
for(var i = 0,j = this.length-1;i!=j&&i<j;i++,j--){
var temp = this[i];
this[i] = this[j];
this[j] = temp;
}
}
this.toString = function(){
var a1 = new MyArray("");
a1.add("[");
for(var i = 0;i<this.length;i++){
if(i!=this.length-1){
a1.add(this[i]+",");
}
else{
a1.add(this[i]+"]");
}
}
return a1;
}
}
(4)用二维数组定义方式,实现页面游戏地图动态生成(document.write)
数组中0表示黑色背景,1表示红色背景,2表示绿色背景
css代码:
<style type="text/css">
div{
border: 1px,solid,white;
width: 20px;
height: 20px;
margin-left:1px;
float:left;
}
</style>
js代码:
var matrix2=[[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,1,0,0,2,0,0],
[0,1,0,0,0,0,0,2,0,0],
[0,2,0,0,0,0,0,2,0,0],
[0,2,0,0,0,1,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,2,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0]
];
for(var i = 0;i<10;i++){
for(var j = 0;j<10;j++){
if(matrix2[i][j] == 0){
document.write("<div style='background-color: black;'></div>");
}
else if(matrix2[i][j] == 1){
document.write("<div style='background-color: red;'></div>");
}
else if(matrix2[i][j] == 2){
document.write("<div style='background-color: green;'></div>");
}
}
document.write("<br/>");
}