js基础知识

 

js获取元素:

  •  
  • getElementById()----静态方法,前面只能跟随document
  • document.body,document.title ----页面上只有一个的元素
  • getElementsByTagName()-----动态方法,前面可以是document也可以跟其他元素,返回的是一个类似数组的集合
    (1)有类似数组的length
    (2)有类似数组的应用方式例如:ali[0]
    (3)再用TagName的时候必须要加上[]
    (4)所谓的动态方法,是指通过js动态添加的元素,getElementsByTagName()也可以找到
    但是document.getElementById是找不到的

js常用鼠标事件:

  • onclick   点击
  • onmouseover  鼠标移动到上面
  • onmouseleave 鼠标移除
  • onmousedown 事件会在鼠标按键被按下时发生。
  • onmouseout 事件会在鼠标指针移出指定的对象时发生。
  • onmouseup 在用户鼠标按键被松开时执行
  • onmousemove 事件会在鼠标指针移动时发生。

函数:

function abc(){ 

 /*要做的事情*/ 

}

  • 直接调用就是abc()
  • 事件调用: 元素.事件 = 函数名
  • 匿名函数

 元素.onmouseover = function(){} window.alert(1); window.alert("ok");

数据类型:

  • 对象
  • undefined
  • Boolean
  • String
  • number

(1)要是基础类型可以用typeOf()来判断
字符串方法charAt(),获取到字符串第几个charCodeAt()获取到UniCode编码。然后在计算。再利用fromCharCode()换算成字符
(2)要是引用类型可以用instanceOf Array;instanceOf Object 来判断
Number()方法能转化字符串数字,空,空数组,要是前面有0比如00100转化的结果就是100
parseInt()相当于把前面的数字部分转化为数字,后面的字符直接舍弃.他转化不了空,真要是转化空结果就是NaN
parseFloat()同上
isNaN()判断是不是NaN

作用域:

(1)在JS找到变量前,他要做的就是先找到一些关键字 var function,参数然后在正是运行代码之前他把这些都提前付了一个值,undefined
遇到重名的只留一个
(2)逐行解读代码。每读一行就是到库里面去看看,要是有值就替换,改变表达式的值

alert(a); //弹出:function a(){alert(4);}
var a=1; //预解析中的a改为了1
alert(a);  //弹出1
function a(){alert(2);}//函数声明,没有改变a的值。什么也没发生。
alert(a); //继续弹出1,因为a在预处理库里面的值没有被改过。
var a=3; //预处理中a的值变为3
alert(a); //弹出3
function a(){alert(4);} //函数声明,什么也没有发生
alert(a); //继续弹出3
a(); //报错 a is not a function
第一步:
       预编译他会先找一些关键字存储到内存中。 比如var function 参数等等
       他找到var a 先看左边,不看右边.上来都给他一个未定义 var a = undefined;要是function他就直接替换了
       比如上面a从undefined直接变成了方法
       他根本不考虑后面的值
第二步:
        在一步步执行代码
        要是遇见表达式(表达式就是 var a = xxx)他才会重新替换或者赋值复制代码

函数的作用域要区分全局变量和局部变量

在方法内部写var的都是局部。在方法外面的都是全局变量。要是在方法里面不加var,那他改变的就是全局的值.

*特别注意的就是在JS里面只有方法有作用域。for和if里面都没有作用域

函数返回值return:

alert fn1();
function fn1(){
    return function(){
        alert(1);
    }
}复制代码

返回的值就是function(){alert(1)}

alert fn1()();
function fn1(){
    return function(){
        alert(1);
    }
}


复制代码

返回的值就是1

arguments参数合集:

arguments表示所有的参数合集

lert(sum(1,2,3));
function sum(){
    var n=0;
    for(var i=0; i<arguments.length; i++){
        n += arguments[i];
    }
    return n;
}复制代码

数组:

  • 可以通过修改数组的length属性来清空数组。
  • 从后面添加数组push() arr.push()往数组最后一位加内容..push()方法是有返回值得。返回是数组的新长度
  • 前面添加数组unshift() arr.unshift()往数组的最前面添加内容,返回值为数组的新长度(IE6,7不支持)
  • 删除pop() arr.pop()表示从后面删除一个数组元素。返回值就是要删除的数组
  • 删除shift() arr.shift()删除数组的第一个返回值是被扔掉的值

 

  • splice()方法
    splice(a,b,c) a表示起始位置,b表示个数,c表示要替换的值
    b要是为0表示插入,c要是什么也不写表示删除。
var arr = ['TM', '钟毅', '张森', '杜鹏', 'Leo'];
//删除
//arr.splice(0, 1); //删掉第0位,删1个。两个参数第一个是从第几位开始,第二个是删掉几个。splice删除的时候有返回值,返回的是被删除的内容
//替换
//arr.splice(0, 1, '莫涛'); //替换第0位,替换1个,替换为'莫涛'。返回的还是删除的东西
//添加
arr.splice(1, 0, '李贤'); //在第1位那里,删除0个,添加了一个'李贤'到了第1位,'钟毅'就变成了arr[2]了。后面也可以添加多个。如果splice删除了0个,那么就没有返回值。复制代码

数据去重:

var arr = [1, 2, 2, 4, 2];
for ( var i=0; i<arr.length; i++ ) {
    for ( var j = i+1; j<arr.length; j++) {
        if( arr[i]==arr[j] ){
            arr.splice( j, 1 );
            j--;
        }
    }
}
也可以使用indexOf
复制代码

 

Sort排序:

var arr = ['c', 'd', 'a', 'e'];
arr.sort(); // 'a', 'c', 'd', 'e' 按照unicode编码排序

var arr2 = [4, 3, 5, 76, 2, 0, 8];
// arr2.sort(); // 0, 2, 3, 4, 5, 76, 8 sort默认是将数组中的每一个按照字符串来排序的,因此出现了76排在8前面的情况

// arr2. sort(function( a, b ){
    return a - b; //如果a-b返回正数,就a、b两个数字换个序。如果a-b是负数,就不换序
}) //返回数字从小到大 0, 2, 3, 4, 5, 8, 76

// arr2. sort(function( a, b ){
    return b - a;
}) //返回数字从大到小 76,, 8, 5, 4, 3, 2, 0复制代码

 

js定时器

setTimeout只在指定时间后执行一次,代码如下:

  1. <script>
  2. //定时器 异步运行
  3. function hello(){
  4. alert("hello");
  5. }
  6. //使用方法名字执行方法
  7. var t1 = window.setTimeout(hello,1000);
  8. var t2 = window.setTimeout("hello()",3000);//使用字符串执行方法
  9. window.clearTimeout(t1);//去掉定时器
  10. </script>  

setInterval以指定时间为周期循环执行,代码如下:

  1. //实时刷新时间单位为毫秒
  2. setInterval('refreshQuery()',8000);
  3. /* 刷新查询 */
  4. function refreshQuery(){
  5. $("#mainTable").datagrid('reload',null);
  6. }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值