首页 > 代码库 > js基础六
js基础六
date 对象 表示日期
没有基本类型,自动创建
需要添加new手动创建对象
var myDate = new Date()
console.log(myDate) 返回的是字符串--当前时间的字符串
date 方法 构造函数调用的本身的使用方法
在网页中直接设置标签的内容 推荐使用火狐上mozla的mdn的网站,国际性网站,可以切换到中文,无法离线使用
document.vrite 尽量不要使用这个方法,比较老旧有些问题
低版本IE中无法使用console.log
var myDate = new Date() 这个是当前时间
console.log(myDate.getDate());获取当前的号数
console.log(myDate.getMonth());获取当前月份数
console.log(myDate.getFullYear());获取当前年份
console.log(myDate.getDay());获取当前是星期几
console.log(myDate.getHours());获取当前小时数
console.log(myDate.getMinutes());获取当前分钟数
console.log(myDate.getSeconds());获取当前秒数
console.log(myDate.getMilliseconds());获取当前毫秒数 ie不能精确到1毫秒,最多能获取10毫秒,30毫秒,误差不可避免
console.log(myDate.getTime());生成时间挫,避免出现同样的数,需要独一无二的id,产生一样的数就会产生意外,生成当前时间的时间挫
console.log(myDate.getTimezoneOffset());以上是获取的本地时间,这个是获取的本地时间与标准时间的时间差的分钟数
console.log(myDate.getUTCHours());获取标准时间的当前的时间的小时数
myDate.setHouts(10); 这个是设置了当前的时间提前的10点
console.log(myDate.getUTCHours())
tostring把每个对象转换成字符串,
var myDate = new Date()
console.log(myDate.toString());这里是把当前日期转换成字符串的意思
console.log(myDate.toLocaleString()); 本地的习惯的时间的格式
console.log(myDate.toLocaleString()) 按照本地格式打印出来
回文: ‘1234‘ -> ‘12344321‘
‘abcd123‘ ->‘abcd123321dcba‘
function fn(str){
//把字符串转换成字符串数组
var arr = str.split(‘‘);
//把字符串数组颠倒顺序
var reverseArr = arr.reverse();
把颠倒顺序之后数组拼接成字符串
var reverseStr = reverseArr.jojn(‘‘);
//把原字符串和颠倒之后的字符串拼接在一起,得到结果
retrun str +reverseStr;
以上熟练以后可以简写为:return str + str.split(‘‘).reverse().join(‘‘;)
}
console.log(fn(‘1234‘))
console.log(fn(‘abc‘))
输入英文的句子,把单词的顺序调换下 ‘this is an apple‘ -> ‘apple an is this‘
function fn(str){
//分隔成单词的数组
var arr = str.split(‘ ‘);
var result = arr.reverse().join(‘ ‘)
return result;
}
console.log(fn(‘this is an apple))
检测类名
function checkClass(allClass,c){
//获取类名的数组
var listofclass = allClass.split(‘ ‘)
//判断c的值,是否在数组中出现过
//假设没有出现过(有:true,没有:false)
var result = flase;
for(var i = 0;i < listofclass.length;i++){
if(listofClass[i] === c){
//如果这两个值相等,代表数组中某一项的值和c相等,此时之前的假设是错误的
result = true;
break;
}
return result;
}
} //indexOf方法,如果没有找到就返回-1,如果找到了,就返回这一项在数组中的角标
方法二:if(listofClass.indexOf(c) === -1){
return false;
} else {
return true
}
console.log(checkClass(‘name my-box right‘, ‘right‘)); //true
console.log(checkClass(‘name my-box right‘, ‘left‘)); //false
console.log(checkClass(‘name my-box right‘, ‘box‘)); //false
console.log(checkClass(‘name my-box right‘, ‘left‘)); //false
b不随a的改变而改变
var a = 10;
var b = a;
a = 20;
console.log(b); 打印结果为10
对象:是一个引用类型,引用类型:把引用类型的数据赋值给变量的时候,并不会吧数据本身赋值给变量,而是把这个数据的引用赋值给变量【成为obj引用类型, 所有对象都是引用类型,所有类型都叫引用类型 一个变量修改以后,另一个变量也跟着改变
var obj1{ 1,在另外的地方保存对象,赋值给obj1 ,obj1是变量,
a: 10,
b:20
};
var obj1 = obj2; 2,
obj1.a = 30; .a是取对象的意思,30赋值给obj1.a
cosole.log(objb.2)
同一个函数中,后面声明的同名变量会覆盖前面声明的变量
10.20
var obj1 = {
a: 10,
b: 20
};
var obj2 ={
a: 10,
b: 20
};
obj2.a = 30;
console.log(obj1.a) 打印结果为10
编写一个函数,这个函数接收一个字符串,返回值为这个字符串中的元音字母出现的个数(aeiou)
比如:fn(‘abcde‘) //2
fn(‘aabbcc‘) //2
function fn(str){
//申明元音字母的个数,初始值为0
var count = 0;
for(var i = 0; var < str.length; i++){
//判断str[i]是否是元音字母,如果是的话就让count加1
方法一、
//if(str[i] === a || str[i] === e || str[i] === i || str[i] === o || str[i] === u){
count++;
}
方法二、
if(([‘a‘,‘e‘,‘i‘,‘o‘,u]),indexOf(str[i]) !== -1){
count++;
}
方法三、
switch(str[i]){
case ‘a‘:
case ‘e‘:
case ‘i‘:
case ‘o‘:
case ‘u‘:
count++;
}
}
return count;
}
给属性赋值不需要声明
##浏览器模型
所有创建的window创建的全局变量,会在Windows会有一个相同的属性
在函数内部创建局部变量,
var abc = ‘hello‘;
console.log(window.abc)
sccreenX 返回相对于屏幕窗口的x坐标,ie浏览器不支持
sccreeny 返回相对于屏幕窗口的y坐标 ie浏览器不支持
screenleft 返回相对于窗口的坐标,即相对于浏览器窗口至屏幕左边的距离 所有浏览器都支持
screentop 返回相对于窗口的坐标
在浏览器console中,输入表达式,变量可以获得返回值
window.innerwith 返回窗口的文档显示区的宽度
windows移动窗口只能在ie浏览器使用
滚动条控制:window.scrollBy(0,50) 第一个参数表示横向的滚动条,第二个参数表示纵向的滚动条相对于当前的位置进行相对的距离的移动(相对于当前的位置进行定位
window.scrollTo(0,50) 相对于真个浏览器窗口的位置进行定位
history 保存的是对象,属性有:length 返回历史记录列表中的记录
history.back
history.forward 浏览器历史记录前进的方法、
history.go (2) 表示既可以前进,又可以后退的方法 2表示步数,如果是负数的话,就是后退
location.href 显示的是当前完整的网址
location. hostname 当前网址的域名
pathname 返回的url路径名
port 返回url服务器使用的端口号
search 返回一个url 的查询部分
网址后面的问号称为
screen 对象
screen.width 返回屏幕的总宽度
screen.height 返回屏幕的总高度
avaiHeight 返回屏幕的高度(包括任务栏的高度 标准浏览器中才支持的,ie中不支持,下一个也是
screen.avaiwidth 返回屏幕的宽度(包括任务栏的宽度
Navigator 对象
Navigator.appCodeName 返回浏览器的代码名
Navigator.appName 返回浏览器的名称
Navigator.appVersion 获取和当前的浏览器有关的东西
platform运行浏览器的操作系统平台
userAgent
开源:代码开发以后,其他的人开源使用,需要遵循开源协议(例如;如果你使用了我的开源代码,你的代码也要开源,这种事较严格的协议
khtml 浏览器内核
避免使用全局变量,可以在函数内部创建变量 匿名函数:调用一次的函数,可以不起名字
立即执行函数/也叫自执行函数:避免产生全局变量的一种方式,把所有的代码放到立即执行函数中,创建的变量都不是全局变量,是函数内部创建的变量
(function (){
var a = 10;
var b = 20;
})()
时间间隔函数 !重要的
(function (){
var fn = function(){
console.log(‘hello.world‘)
};
fn; 把fn换成这个:setTimeout(‘console.log(\‘hello,world‘\),2000) 两个参数,第一个是需要执行的js代码,第二个延迟多少毫秒
})(); 上面第一个参数一般情况传入函数就可以的
第一步计算实参的值,
如果没有手动写return的话,系统会自动返回return undefined;
setTimeout 延迟一段时间去执行某段代码 先计算实参 setTimeout(function){},)
setTimeOut 指定毫秒数后调用函数或表达式
setInterval 每隔一段时间去执行某段代码 setInterval(function){},)
同步和异步``同步:对于一个比较花费时间的事情来说,等待这件事情完成之后,再去做下面的事情 for prompt,alert,confirm这三个语句都是同步语句,会阻塞js代码接下来语句完成
异步:对于一个比较花费时间的事情来说,在做这件事的同时,就去做下面的事情:setTimeOut,setInterval 目前只有这两个是异步,其他的都是同步
(function (){
function sayHello(){
console.log(‘你好‘);
}
sayHello();
//for(var i = 0; i < 10000; i++){ 1秒等于1000毫秒
// var a = 10;
// var b = a * b -15;
//}
console.log(‘hello‘)
setTimeout(function()){
console.log(‘延迟执行‘)
},2000;
console。log(‘hello‘)
})();
clearInterval停止
(function(){
//用times变量表示打印的次数
var times = 0;
setInterval(function(){
console.log(1);
times++;
console.log(‘这是第‘ + times + ‘次打印‘);
if(times >= 20 ){
clearInterval(times);
}
},1000);
})();
(function(){
for (var i = 1;i <= 20;i++){
setTimeout(function(i){
//var i = 当前这一次循环i的值
return function(){
console.log(i);
}
},)(i)i*1000);
}
}();
js基础六