• js-知识集锦


    CreateTime--2016年9月22日14:37:51
    Author:Marydon
    js小知识点集锦
    1.

    JSON.stringify(Obj);//将Object对象转换成json格式的string类型字符串

    2.===与==
      1、对于string,number等基础类型之间的比较,==和===是有区别的
        1)不同类型间比较,

          == 比较的是:判断两边转化成同一类型后的值是否相等,
          ===如果类型不同,其结果就是不等
        2)同类型比较,直接进行“值”比较,两者结果一样
      2、对于Array,Object等高级类型之间的比较,==和===是没有区别的
        进行“指针地址”比较
      3、基础类型与高级类型的比较,==和===是有区别的
        1)对于==,将高级转化为基础类型,进行“值”比较
        2)因为类型不同,===结果为false
    3.函数内部声明变量的时候,一定要使用var命令。如果不用的话,你实际上声明了一个全局变量!
      Js代码

    function f1(){
        n=999;
    }
    f1();//需要调用,不能省略
    alert(n); // 999
    (function() {
        var Obj2 = {};
        var name = "方法二"; //或Obj2.name = "方法二"
        Obj2.method1 = function() {
            console.log("方法二进行测试");
            return name;
        }
        window.GlobalObj2 = Obj2;
    })();
    var name = GlobalObj2.method1();//获取的是返回值name
    var method = GlobalObj2.method1;//获取的是对象GlobalObj2的method1()方法

    UpdateTime--2016年10月16日15:50:02
    4.js获取后台数据
      前提:js代码必须写在本页面中,外部引用的js文件不用使用下面的方法

    //方法一
    var test = '${model}';
    //方法二    
    var test = '<%=request.getAttribute("model")%>';

      js里面可以嵌套jstl标签
    UpdateTime--2016年10月31日10:06:12
    5.

    event.keyCode;//获取键的编码 火狐不支持
    <script>
        var globalFunction = new GlobalFunction();
        function GlobalFunction () {
            this.listenKeyCode = function listenKeyCode () {
                if (event.keyCode == 13) {//event.keyCode = 9;//tab键
                    console.log("您按的是回车键");
                }
            }
        }
    </script>
    <input type="text" name = "text1" onkeydown = "globalFunction.listenKeyCode()">
    注:火狐用的是event.which

    7.document.write()与document.out()
      document.write()会将body标签的内容替换掉;
      document.out()则只有在jsp页面才能使用,不属于js的范畴
    8.appendChild()与insertBefore()

    //新建一个div元素节点
    var div=document.createElement("div");
    div.innerText = "helloworld";
    //把div元素节点添加到body元素节点中成为其子节点,但是放在body的现有子节点的最后
    document.body.appendChild(div);
    //插入到最前面
    document.body.insertBefore(div, document.body.firstElementChild);

    9.document.createElement();//动态创建元素

    var dialog = document.createElement('div');
    var img = document.createElement('img');
    var btn = document.createElement('input');
    var content = document.createElement('span');

    10.动态添加样式

      通用属性用".",自定义属性用"setAttribute('customizeName','value')"

    // 添加class
    dialog.className = 'dialog';
    //添加id
    dialog.id = 'top';
    // 属性
    img.src = 'close.gif';
    // 样式
    btn.style.paddingRight = '10px';
    // 文本
    span.innerHTML = '您真的要GG吗?';
    // 在容器元素中放入其他元素
    dialog.appendChild(img);
    dialog.appendChild(btn);
    dialog.appendChild(span);

    注:

      a.8,9,10有连接关系;
      b.添加class属性调的是"className"
    11.event事件
      window.event代表着事件对象的状态。只有在事件发生时生效。如鼠标、键盘等事件被触发时这个对象才存在。window.event这只在IE下是这样的。他并不是标准。也就是说其他浏览器并不支持。在W3C标准支持的浏览器下事件对向是引发事件函数的第一个参数,参数名随意

    //获取event对象
    //方法一
    var theEvent = window.event || arguments.callee.caller.arguments[0];
    //方法二
    将event作为参数来传递:
    function eventListener(evt){
        var theEvent = window.event || evt;
    }
    <input id="test" type="text" oncopy="javascript:eventListener(event);"/>
    //捕获当前事件作用的对象
    var srcElement = theEvent.srcElement? theEvent.srcElement : theEvent.target;

    综上:

    /**
     * 监听事件,捕获当前事件作用的对象并对该对象执行操作
     * @param {Object} obj
     */
    function eventListener(evt){ 
        //推荐使用
        var theEvent = window.event || arguments.callee.caller.arguments[0] || evt;
        var srcElement = theEvent.srcElement? theEvent.srcElement : theEvent.target;
        alert(srcElement.value);
    }
    <input id="test" type="text" oncopy="javascript:eventListener(123)"/>

    注意:

      火狐获取事件的方法是:arguments.callee.caller.arguments[0]

    UpdateTime--2018年2月28日11:15:16

    12.函数内可以嵌套函数

    function test() {
        alert(1);
        function test2() {
            alert(2);
        }
        test2();
    }
    //调用
    test();

    注意:

      函数不能放到window.onload函数里面

    window.onload = function() {
        function test() {
            alert(1);
        }
        test();// 不执行
  • 相关阅读:
    nvelocity的Foreach 中使用DataTable数据
    好的博客链接收集
    Uber Shaders
    DOF
    纹理过滤模式中的Bilinear、Trilinear以及Anistropic Filtering
    开通博客了
    代码中的隐式转换问题
    使用C++/CLI封装引用BOOST库的DLL造成的问题
    在Free Radius的PAP认证过程中使用MD5密码
    (转)测试CPU是大端Big endian 还是小端Little Endian的C代码
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/6529754.html
Copyright © 2020-2023  润新知