js的一些小总结

来源:互联网 发布:revit软件电脑配置 编辑:程序博客网 时间:2024/04/29 15:31
1、< 小于号 > 大于号 半角空格:  全角空格: 
2、script可以有多个,从上向下执行,外部引入不能再写入语句
3、变量命名规则:数字字母下划线、$,不能以数字开头,不能用保留字和关键字,标识符包括变量名和函数名。
4、字符串转换类型:parseInt( )、parseFloat( )、Number( )、问题2 parseFloat(num)
5、运算符+:两边有一边是字符串(从左到右),就是字符串连接;
“3”+5+2:352; “3”+5+2+“1”: 3521; 3+5+“2”:82;
6、逻辑运算符 && || !
alert(4 || num); // 4 (左边为真,不往后面执行)
alert(4 && num); //报错 (左边为真,执行后面报错,num没有定义)

alert("" && num); //空 (左边为假,后边不执行)

7、switch结构和缩进

var num = 3;  swith (num){    case 1 :        console.log(1);        break;    case 2 :        console.log(2);        break;    default :        console.log(3);        break;}

//没有该break时候,case语句会实现一个穿透
8、嵌套
9、break continue return区别
//break 只能跳出当前那一层循环体
//continue 跳出本次循环,执行下次循环
//return 返回到函数处,后面不再执行
10、反三角打印
函数:
11、函数特性 1.封装 2.继承
12、封装的好处 ①:重复使用;②:忽略函数内部细节;③:提高代码的使用,提高开发效率,易于维护;④:调用时间随意;
13、函数的递归 1!+2!

//n的阶乘

function add(n){   if(n==1){     return 1;   }else{      return n*add(n-1);   }}

14,对象、遍历

var obj = {     name : "zhangsan",     age : 14,     sex : "boy"}//对象的遍历for(var i in obj){     document.write( i + ":" + obj[i] + "<br />");}

数组

join(数组转换成字符串),sort(排序按照ASCII排序,排数字按照首字母),concat(数组拼接),split(字符串转换成数组)
arr.push('B');//数组末尾添加一个元素
var str = arr.pop();//移除末尾一个元素,并返回该元素
arr.unshift('TJ','HN');//数组开头添加两个元素
var str = arr.shift();//移除开头一个元素,并返回该元素
slice(start,end);
var arr = [3,4,5];
alert(arr.slice(1,3)); //4,5

//冒泡排序

var  arr= [1,2,10,4,0];     for(var i=0;i<arr.length;i++){            for(var j=0;j<arr.length-i;j++){                 if(arr[j]>arr[j+1]){                        var temp=arr[j];                        arr[j]=arr[j+1];                        arr[j+1]=temp;                 }               }         }    console.log(arr);

字符串
1、indexOf lastIndexOf
slice substring substr
//slice和substring一样(下标,位数) 包下标,不包上标
//substr(start,length): length表示长度
//第二个参数都是可选的,若不写,表示到字符串末尾
字符串去重
var str= "aaabdefffa";str.split("");function unique(str) {  var  newArr= [];for(var i= 0;i< str.length;i++) {    var  a= str[i];    if(newArr.indexOf(a) == -1) {        newArr[newArr.length] = a;    }}return  newArr;}console.log(unique(str).join(""));
Math console
Math.round();四舍五入
Math.ceil();向上取整
Math.random();随机数
Math.floor();向下取整
Math.pow(x,y);x的y次方
Math.abs();绝对值
Math.sqrt(num);开根号
Math.Min(num1,num2);最小值
Math.Max(num1,num2);最大值
日期
格林尼治时间1970.1.1 8:00
月份0-11和周几0-6
封装当前日期

//封装一个当前时间的函数

function getTime(){var time= newDate();var year= time.getFullYear();var month= time.getMonth()+1;var date= time.getDate();return  year+"-"+month+"-"+ date;}document.write(getTime());

获得三种时间戳
var timestamp1 = Date.parse(new Date( )); (静态函数,由类直接出来的)
var timestamp2 = (new Date( )).valueOf( );
var timestamp3 = new Date( ).getTime( );
时间戳:毫秒计,从1970年开始到当前时间

setTime( ); 把时间戳时间重置

setTimeout("alert("1秒执行")",1000);var t = setTimeout(function(){console.log("里面");},1000);alert( t ); //timeout的一个标志数,是一个随机的

setInterval();
清除
clearTimeout();
clearInterval();
bom
alert();
confirm();确认框
prompt(); 对话框
open("http://www.baidu.com"); //新窗口打开
open("http://www.baidu.com","baidu"); //baidu刷新只打开一次,相当于取了一个名字
open("http://www.baidu.com","_blank"); //新窗口打开
open("http://www.baidu.com","_parent"); //当前页面打开
location即是window也是document属性
属性 描述的URL内容
hash 如果该部分存在,表示锚点部分
host 主机名:端口号
hostname 主机名
href 整个URL
pathname 路径名
port 端口号
protocol 协议部分
search 查询字符串
history.length; //history对象中的记录数
方法
//只有使用_parent才能在同一页面打开
history.back(); //前往浏览器历史条目前一个URL,类似后退
history.forward(); //前往浏览器历史条目下一个URL,类似前进
history.go(num); //浏览器在history对象中向前或向后
DOM
封装getElementsByTagName
getAttribute //在页面元素上用户自定义的属性是无法用"."表示,只能通过getAttribute()得到
setAttribute //属性值的改变,都可以用这个
removeAttribute //移除属性
//通过style只能获取内部样式
obj.currentStyle.color //IE下的方法获取内部css
getComputedStyle(obj,false).color//非IE下,false:如果是伪类就是true,否则就是false;
封装获取内部css:
window.onload= function(){  function getAttr(id,attr){     if(id.currentStyle){          returnid.currentStyle[attr];     }        return   getComputedStyle(id,false)[attr];     }      alert(getAttr(btn,"color"));}
四个节点:
文档节点(document,唯一)
元素节点(那些个标签div,p之类)
属性节点(标签的一些属性)
文本节点(空格和一些文本)
使用nodeName来获取元素的标签名称
使用nodeValue来获取文本内容
使用nodeType来判断到底哪个是节点(元素1属性2文本3)
innerHTML和nodeValue
creatElement(); //创建一个元素节点
creatTextNode();//创建一个文本节点
box.appendChild(node);//把node节点插入到box的内部最后的位置
box.insertBefore(newNode,existNode)//把newNode节点插入到existNode的前面
box.removeChild(node);
js注释:
//......:单行注释
/*.......*/:主要是函数注释
/**.......*/:文档注释
arguments.callee:表示当前函数 arguments:保存所有的实参
如果要判断一个变量a是否是一个数组,可以使用a instanceof Array  instanceof 用于判断一个变量是否某个对象的实例
所有对象都是由object继承来的。
监听事件和普通事件的区别?
1,同一个元素上,对同一个事件类型,可以多次绑定不会被覆盖
2,监听事件可以对事件进行捕获
clientX: //鼠标点击位置距离可视区域浏览器最左边的位置。
offsetX://鼠标点击位置相对于目标元素target最左边的位置。 offsetY
offsetLeft://获取相对于父元素的左边距离。     offsetY
伪类和伪元素(伪对象)区别:
伪类:first-child、last-child、: link、: hover、: visited、: active、: focus
伪元素:first-letter、first-line、: before、: after
伪类的效果可以通过添加一个实际的类来达到,而伪元素的效果则需要通过添加一个实际的元素才能达到。
相当于伪类是人类,伪元素是人。
location.href : 链接
location.reload:加载
0 0