23、
22、javascript:d1=+new date()
js在某个数据类型前使用‘+’,这个操作目的是为了将该数据类型转换为Number类型,如果转换失败,则返回NaN;
21、JS 中的return false的作用
在大多数情况下,为事件处理函数返回false,可以防止默认的事件行为.
Return False 就相当于终止符,终止默认的事件行为,反之,Return True 就相当于执行符,执行终止默认的事件行为。
在js中return false的作用一般是用来取消默认动作的。比如你单击一个链接除了触发你的
onclick时间(如果你指定的话)以外还要触发一个默认事件就是执行页面的跳转。所以如果
你想取消对象的默认动作就可以return false。
20、弹窗宽高
var winWidth = $(window).width()*0.9;
var winHeight = $(window).height()*0.9;
19、编写一个方法去掉一个数组的重复元素
function clear(arr) {
// 1 如何获取数组中每一个元素出现的次数
var o = {}; // 记录数组中元素出现的次数
for (var i = 0; i < arr.length; i++) {
var item = arr[i]; // 数组中的每一个元素
// o[item] = 1;
// 判断o对象是否有当前遍历到的属性
if (o[item]) {
// 如果o[item] 存在,说明次数不为1
o[item]++;
} else {
// 如果o[item] 不存在,说明是第一次出现
o[item] = 1;
}
}
// console.log(o);
// 2 生成一个新的数组,存储不重复的元素
var newArray = [];
// 遍历对象o中的所有属性
for (var key in o) {
// 判断o对象中当前属性的值是否为 1 如果为1 说明不重复直接放到新数组中
if (o[key] === 1) {
newArray.push(key);
} else {
// o对象中当前属性 次数不为1 ,说明有重复的,如果有重复的话,只存储一次
// 判断当前的newArray数组中是否已经有该元素
if (newArray.indexOf(key) === -1) {
newArray.push(key);
}
}
}
return newArray;
}
var array = ['c', 'a', 'z', 'a', 'x', 'a'];
var newArray = clear(array);
console.log(newArray);
18、 // ['c', 'a', 'z', 'a', 'x', 'a']找到数组中每一个a出现的位置
// var arr = ['c', 'a', 'z', 'a', 'x', 'a'];
// 从前往后找元素
// console.log(arr.indexOf('a'));
// // 从后往前找
// console.log(arr.lastIndexOf('a'));
// indexOf的第二个参数 设置indexOf查找的开始位置
// console.log(arr.indexOf('a', 2));
// 如果没有找到元素 indexOf 会返回-1
//
// while do...while
// var index = -1;
// do {
// index = arr.indexOf('a', index + 1);
// if (index !== -1) {
// console.log(index);
// }
// } while (index !== -1);
17、// 工资的数组[1500, 1200, 2000, 2100, 1800],把工资超过2000的删除
// var arr = [1500, 1200, 2000, 2100, 1800];
// var newArray = arr.filter(function (item) {
// // item就是数组中的每一个元素
// return item < 2000;
// })
// console.log(newArray);
16、 // 将一个字符串数组输出为|分割的形式,比如“刘备|张飞|关羽”。使用两种方式实现
// var arr = ['刘备', '张飞', '关羽'];
// // arr.toString(); -> 刘备,张飞,关羽
// console.log(arr.join('|'));
15、// 函数如何返回多个值
// function fn() {
// return {
// year: 1,
// day: 2,
// hour: 3
// };
// }
14、 // 写一个函数,格式化日期对象,返回yyyy-MM-dd HH:mm:ss的形式
// function formatDate(date) {
// // 判断参数date是否是日期对象
// // instanceof instance 实例(对象) of 的
// // console.log(date instanceof Date);
// if (!(date instanceof Date)) {
// console.error('date不是日期对象')
// return;
// }
// var year = date.getFullYear(),
// month = date.getMonth() + 1,
// day = date.getDate(),
// hour = date.getHours(),
// minute = date.getMinutes(),
// second = date.getSeconds();
// // if (month < 10) {
// // month = '0' + month;
// // }
// month = month < 10 ? '0' + month : month;
// day = day < 10 ? '0' + day : day;
// hour = hour < 10 ? '0' + hour : hour;
// minute = minute < 10 ? '0' + minute : minute;
// second = second < 10 ? '0' + second : second;
// return year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second;
// }
13、 // 获取日期中的指定部分
var d = new Date();
console.log(d.getFullYear());
// !--------注意:月份是从0开始的-------------
console.log(d.getMonth() + 1);
console.log(d.getDate());
console.log(d.getHours());
console.log(d.getMinutes());
console.log(d.getSeconds());
12、// Math对象和Date对象的区别
// Math 不是一个构造函数,里面提供是静态成员
// var MyMath = {
// PI: 3.14,
// max: function () {
// }
// }
// 静态成员
// MyMath.PI
// MyMath.max();
// Date 是一个构造函数,首先要通过new Date() 来创建日期实例(对象),实例成员
// var d = new Date();
// 如何获取日期对象的毫秒值
// var d = new Date();
// // 获取日期对象的毫秒值 不用我们调用
// // console.log(d.valueOf());
// // 和valueOf的作用是一样的
// console.log(d.getTime());
// console.log(+ d);
11、内置对象
// JavaScript 组成: ECMAScript BOM DOM
// ECMAScript:变量 注释 数据类型 类型转换 操作符 流程控制语句(判断和循环) 数组 对象 构造函数 内置对象
// JavaScript中的对象有三种:自定义对象、内置对象、浏览器对象
// ECMAScript中的对象: 自定义对象、内置对象
//
// 内置对象:Math/Array/Date...
//
// 最常用的属性和方法
//
// 查文档:MDN
10、 // 生成 min 到 max 之间的随机数
var min = 10;
var max = 100;
console.log( parseInt(Math.random() * (max - min) + min));
9、// new 的执行过程
// 1 在内存中创建了一个空的对象
// 2 让构造函数中的this指向刚刚创建的对象
// 3 执行构造函数,在构造函数中设置属性和方法(当然也可以做其它事情)
// 4 返回了当前对象
8、对象
var dog = {
name: 'puppy',
type: '中华田园犬',
age: 2,
color: 'yellow',
bark: function () {
// 在方法中如何使用属性的值
// this 在方法中代表的是当前对象 dog
console.log(this.name + '汪汪汪');
},
eat: function () {
console.log(this.name + '啃骨头');
}
}
// 如何访问属性 对象.属性名
console.log(dog.name);
console.log(dog.type);
// 如何访问方法 对象.方法名
dog.bark();
dog.bark();
dog.eat();
7、 // 预解析
// 在预解析的过程中如果函数和变量的名字相同,此时函数优先
// var a;
// function a() {
// console.log('aaaaa');
// }
// console.log(a);
// a = 1;
// console.log(a);
6、 // 输入一个年份,判断是否是闰年[闰年:能被4整数并且不能被100整数,或者能被400整数]
// function isRun(year) {
// var result = false;
// if ((year % 4 === 0 && year % 100 !== 0) || (year % 400 === 0)) {
// result = true;
// }
// return result;
// }
// console.log(isRun(2016));
5、 // 对数组排序,从小到大 -- 冒泡排序
// function sort(array) {
// // 外层循环 控制趟数
// for (var i = 0; i < array.length - 1; i++) {
// // 假设排好序了
// var isSort = true;
// // 内层循环 控制比较的次数
// for (var j = 0; j < array.length - 1 - i; j++) {
// if (array[j] > array[j + 1]) {
// isSort = false;
// // 交换位置
// var tmp = array[j];
// array[j] = array[j + 1];
// array[j + 1] = tmp;
// }
// }
// // 判断是否排好了
// if (isSort) {
// break;
// }
// }
// return array;
// }
// var array = [34, 12, 88, 20, 30];
// console.log(sort(array));
4、arguments , 通过arguments 获取函数调用的时候的实参, object 类型
// 求任意个数的和
function getSum() {
var sum = 0;
for (var i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
}
var sum = getSum(5, 1, 3, 4);
console.log(sum);
3、 // 求整数1~100的累加值,但要求跳过所有个位为3的数
// var sum = 0;
// for (var i = 1; i <= 100; i++) {
// if (i % 10 === 3) {
// console.log(i);
// } else {
// sum += i;
// }
// }
// console.log(sum);
2、// 求整数50~200的第一个能被7整除的数
// for (var i = 50; i <= 200; i++) {
// if (i % 7 === 0) {
// console.log(i);
// break;
// }
// }
1、do {
var msg = prompt('你到底爱不爱我?', '请输入yes/no');
} while (msg !== 'yes');
console.log('亲亲我的宝贝');