js随记

style.cssText----设置dom的样式:

var dom=document.getElementById("test");
dom.style.cssText = "width:10px;height:10px;border:solid 1px red;";

目前style.cssText类似innerHTML了,已经成为一个web开发的事实标准。因此所有浏览器都支持

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

<script language="javascript">

/**方式一**/
function test(){
    return{//返回一个对象
    get_name:function(){
            alert("xubo");
         }
    };
    
}
test().get_name();//xubo

/**方式二**/
function test2(){
    this.get_name = function(){
        alert("xubo");
    }
}
var obj = new test2();
obj.get_name();

/**方式三**/

var obj = {
 get_name:function(){
    alert('xubo');
 }
}
obj.get_name();
</script>

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

var obj = {
    init:function(){
        this.name = 'xubo';
    }
}
var si = new obj.init();
alert(si.name);//xubo

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

正则表达式中/i,/g,/ig,/gi,/m的区别和含义

/i (忽略大小写)
/g (全文查找出现的所有匹配字符)
/m (多行查找)
/gi(全文查找、忽略大小写)
/ig(全文查找、忽略大小写)

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

(1)
var myfunc = function ()
        {
            alert("hello");
        };
    myfunc(); //第一次调用 myfunc,输出hello
     
    myfunc = function ()
        {
            alert("yeah");
        };     
    myfunc(); //第二次调用 myfunc,将输出yeah
在第一次调用函数之后,函数变量 又被赋予了新的函数代码体, 使得第二次调用该函数时,出现了不同的输出。

(2)

function myfunc ()
    {
        alert("hello");
    };
    myfunc(); //这里调用myfunc,输出 yeah 而不是 hello
     
    function myfunc ()
    {
        alert("yeah");
    };     
    myfunc(); //这里调用myfunc,当然输出yeah

程序运行之后却发现一个 奇怪的现象:两次调用 都只是最后那个函数里输出的值!显然 第一个函数没有起到任何作用。这又是为什么呢?

原来,JavaScript 执行引擎并非一行一行地分析和执行程序,而是一段一段地分析执行的。而且,在同一段程序的分析执行中,定义式的函数语句会被提取出来优先执行。函数定义执行完之后才会按顺序执行其他语句代码。也就是说,在第一次调用myfunc之前,第一个函数语句定义的代码逻辑,已被第二个函数定义语句覆盖了。所以,两次都调用都是执行最后一个函数逻辑了。

(3)

如果把这个JavaScript代码分成两段,例如将它们写在一个html 中,并用<script/>标签将其分成这样的两块:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

<script>
    function myfunc ()
    {
        alert("hello");
    };
    myfunc(); //这里调用myfunc,输出 hello
</script>
 
<script>
    function myfunc ()
    {
        alert("yeah");
    };     
    myfunc(); //这里调用myfunc,输出 yeah
</script>

这时,输出才是各自按顺序来的,也证明了JavaScript的确是一段段地执行的

一段代码中的定义式函数语句会优先执行,这似乎有点象静态语言的编译概念。所以,这一特征也被有些人称为:JavaScript的“预编译”。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

在JavaScript函数中,你只能把this看成当前要服务的“这个”对象。 this是一个特殊的内置参数,根据this参数,您可以访问到“这个”对象的属性和方法,但却不能给 this 参数赋值。在一般对象语言中,方法体代码中的 this可以省略的,成员默认都首先是“自己”的。但JavaScript却不同,由于不存在“自我”,当访问“这个”对象时,this不可省略!

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
html5中JSON.parse()与JSON.Stringify():

分别用于将字符串序列化成DOM对象和将DOM对象转换成字符串

parse():

var jsObject = JSON.parse('{"name":"Mike","age":22}');
stringify():

var jsonString = JSON.stringify({name:"Mike",age:22});
//jsonString = '{"name":"Mike","age":22}'
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

function obj(){
    this.age = 21;
}
obj.name = "xubo";
alert(obj.name);//"xubo"
alert(obj.age);//undefined

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

回调函数使用:
obj = {
    getData:function(){
        var param = arguments[0];
        //回调函数
        if(typeof param.success=="function"){
            param.success({name:"xubo",type:param.type});//调用回调函数
        }
        
    }
}
obj.getData({
    type:"POST",
    success:function(datas){alert("name:"+datas.name+"\n type:"+datas.type)}
    });

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

var num = .15;
alert(num)//0.15

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
阻止浏览器的默认行为:
//如果提供了事件对象,则这是一个非IE浏览器
if ( e && e.preventDefault ){
    //阻止默认浏览器动作(W3C)
e.preventDefault();} else{
    //IE中阻止函数器默认动作的方式
    window.event.returnValue = false;
    return false;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值