月光大保健

导航

第五章JavaScript

创建数组:
//1.字面量方式创建 (推荐大家使用这种方式创建数组 简单粗暴)

var colors = ['red','color','yellow'];
console.log(colors)

//空数组
var emptyArray = [];

//2.使用构造函数的方式创建 使用new关键词对构造函数进行创建对象
var colors2 = new Array();

var colors3 = new Array('white','red','orange')
console.log(colors3)

数组的基本操作:
//1.数组的合并  concat()
var north = ['北京','山东','天津'];
var south = ['东莞','深圳','上海'];

var newArr = north.concat(south);
console.log(newArr)


//2.将数组转换成字符串
var score = [98,78,76,100,0];

//toString() 直接转换为字符串 每个元素之间使用逗号隔开

var str = score.toString();
console.log(str)


//join()方法 将数组中的元素使用指定的字符串连接起来,它会形成一个新的字符串

var str2 = score.join('|')
console.log(str2)

//3.查找下标
//indexOf() 正向查找
//如果查找的值不在数组中则返回-1
var index = score.indexOf(101)
console.log(index)

//反向查找

var lastIndex = score.lastIndexOf(78);
console.log(lastIndex)


//数组的排序
var names = ['alex','xiaoma','tanhuang','abngel'];

//4.反转数组
var reverseNames = names.reverse();
console.log(reverseNames)
console.log(names)

//sort():按照26个字母排序 数组

var enames = names.sort();
console.log(enames)
console.log(names)

// if(enames===names){
// alert(2)
// }


//5.移除元素和添加元素
//移除我们的第一个元素 返回的结果是移除的第一个元素 原来数组中的第一个元素 被移除掉了
var firstName = names.shift()
console.log(firstName)
console.log(enames)
console.log(names)

//unshift()向数组的开头添加一个或者多个元素,并返回新的长度
var newLength = names.unshift('shanshan');
console.log(newLength)
console.log(names)


//push() pop()


//push() 向数组的末尾添加一个或者多个元素,并返回新的长度
var newNames = names.push('老村长','嘿嘿嘿')
console.log(newNames)
console.log(names)


var a = names.pop() //a 是被删除的元素
console.log(a)
console.log(names) //pop()删除数组的最后一个元素


var str = 'hello luffy';

console.log(str.split('').reverse().join(''))

函数:
//1.js中的函数的声明  记得:有函数的声明 就一定有调用
function add(){
// alert("函数被调用了")
//执行的一些操作
}

//2.函数的执行
add()


/*
//二,声明函数的时候带参数
function add2(a,b){
alert(a+b)
}

add2(3,4)
*/
//三,声明函数的时候带参数,并且有返回值
function add3(x,y){
return x+y;
}

构造函数:
//1.对象的创建

//1.字面量方式创建 推荐使用这种方式 简单直观
//key:value
var stu = {
name:'alex',
age:22,
fav:'鸡汤'
}
console.log(stu)
console.log(window)
//点语法: 包括get方法和set方法
var n = stu.name;
console.log(n)

stu.age = 34;
console.log(stu.age)

//2.使用Object()创建对象
// function add(){
//
// }
// add()

// Object() 构造函数 1.首字母大写 碰见构造函数 要想创建对象 new

var obj = new Object();

obj.name = 'xiaomage'
console.log(obj)


//------------构造函数------------------

//1.函数名首字母要大写
//2.构造函数不需要return
//3.为对象添加成员变量: this.name = 'alex'

var Stu = function(){
this.name = '武sir';
this.age = 18;
this.fav = function(){
console.log('泡妹子')
}
}

//创建这个对象
var s = new Stu();
console.log(s)

var s1 = new Stu();
console.log(s1)

//弊端:每次new一个对象 里面的成员变量和方法都一样


//推荐大家使用的构造函数的方式

function Animal(){
this.name = 'jingjing';
this.age = 12
// this.fav = function(){
// console.log(this.age)
// }

}

Animal.prototype.showname = function () {
//执行相应的操作
alert(this.name)
}
Animal.prototype.showname2 = function () {
alert(this.name)
}
Animal.prototype.showname3 = function () {
alert(this.name)
}
Animal.prototype.showname4 = function () {
alert(this.name)
}



var a = new Animal()

a.showname()

Math方法:
var x = 1.234
//天花板函数 大于等于 x,并且与它最接近的整数 2
var a = Math.ceil(x)
console.log(a)

//地板函数 小于等于 x,并且与它最接近的整数 1
var b = Math.floor(x)
console.log(b)

//求 两个数的最大值 最小值

console.log(Math.max(2,5))
console.log(Math.min(2,5))


//经常使用 random 0-1之间的随机数 包含0 不包含1
var ran = Math.random()

console.log(ran)

//100-200之间的随机数
var c = 100+Math.random()*100
console.log(c)

//min - max之间的随机数 min+Math.random()*(max-min)

//5-15
var d = 5 + Math.random()*(15-5)
console.log(d)
 
定时器的用法:
var n = 0;
var time = null;

time = setInterval(function(){ //每隔一秒运行函数
n++;
console.log(n)

},1000)


//setTimeout(code,1000)

setTimeout(function(){
console.log(time)

window.clearInterval(time)  //五秒后停止运行time函数
},5000)

 JS Dom
document:
在script JavaScript里面设置
//获取dom元素
var btn = document.getElementById('btn')

//创建divdom元素
var oDiv = document.createElement('div')
var oP = document.createElement('p')
var oSpan = document.createElement('span')
//增加子节点
oDiv.appendChild(oP)
oP.appendChild(oSpan)
//在元素里添加点击效果
btn.onclick = function(){
// alert(111)
//动态的添加到body中一个div
console.log(this)
this.parentNode.insertBefore(oDiv,btn) //添加元素的方法,第一个参数时新添加的元素,第二个参数时在哪个前面添加

}
oSpan.onclick = function(){
// removeChild

oDiv.parentNode.removeChild(oDiv)    //removeChile方法时移除子节点
}
 
节点的创建:
var nDiv = document.createElement('div')

获取:
var Box = document.getElementsByClassName('box')[0]

设置:

nP.innerHTML = '模拟弹出框'
nP.appendChild(nSpan)
 
BOM:Browser object model 浏览器对象模型
//核心  浏览器
//输出 屏幕的宽高 滚动的宽高 setInterval .. window.open() close() location
//1.alert(1)

//2.用于浏览器的调试
console.log('路飞学城')

//3. prompt('message',defaultValue)
var pro = prompt('路飞学城','33333');

console.log(pro)

//4 confirm() 如果点击确定 返回true 如果点击取消 返回false

var m = confirm("学习Bom");
console.log(m)
function printLuffy(){
print()
}

function findLuffy(){
var m2 = confirm("学习Bom");
find(m2);
}

open和close
oBtn.onclick = function(){
// open('https://www.baidu.com')

//打开空白页面
open('about:blank',"_self")
}
closeBtn.onclick = function(){
if(confirm("是否关闭?")){
close();
}
}
其他方法:
//返回浏览器的用户设备信息
console.log(window.navigator.userAgent)


// console.log(window.location)

//经常使用的一个方法,实际就是调用了window下的location的href属性,强行修改,这样就可以实现跳转
// window.location.href = 'https://www.luffycity.com';

//全局刷新 ===》 局部刷新 尽量少用这个方法
//3秒后整个页面全部刷新
setTimeout(function(){
window.location.reload();
},3000)
client属性
* client
* clientTop 内容区域到边框顶部的距离
* clientLeft 内容区域到边框左部的距离
* clientWidth 内容区域+左右padding 可视宽度
* clientHeight 内容区域+ 上下padding 可视高度
* */
 获取屏幕的可视区域:
window.onresize = function(){

console.log(document.documentElement.clientWidth);
console.log(document.documentElement.clientHeight);
}

offset:
//占位宽 高 Top Left  

/*
* offsetTop: 如果盒子没有设置定位 到浏览器的顶部的距离,如果盒子设置定位,那么是以父盒子为基准的top值
* offsetLeft: 如果盒子没有设置定位 到浏览器的左部的距离,如果盒子设置定位,那么是以父盒子为基准的left值
offsetWidth 内容+padding+border
* */


windown.onload:必须等到页面内包括图片的所有元素加载完毕后才能执行
 
innerHTML:这个所有的文本
innerText:当前标签的文本
 

posted on 2018-07-11 21:44  月光大保健  阅读(123)  评论(0编辑  收藏  举报