js的写法基础分析

var a=false;
!a&&alert("hi");
解释 a为真才继续往下执行,所以会弹出hi
var a=a||"hi";
解释 当a为假的时候会继续执行,当a为真的时候跳出这个语句,所以可以通过这个办法复制默认值
上面的方法并非所有语言都是如此处理,比如PHP
$a=@$a||"hi";
echo $a;//1
php把(@$a||"hi")之后的值赋值过去了...
$a=true;
!$a&&echo "hi";
直接报错:syntax error, unexpected T_ECHO
关于prototype
很多情况下看到prototype都想到只有对象的情况下有
var add=function(){alert("b");}
add.prototype.a = function () {alert("hi");}
new add.prototype.a;
第一反应,可能会报错,其实不然,当没有生产对象的时候,可以通过add.prototype.a的方式直接调用静态的方法的
JS挺会误导人的,咳
选择器问题:
有时候需要选择一个节点下的子节点,用childNodes取值FIREFOX,IE的不同让人很郁闷
document.getElementsByTagName("head")[0].getElementsByTagName("script")[0];
上面的方法结果用在head标签阶段还好,用在其他的不怎么好用了
所有觉得还是用个类名作处理好点


代码如下:

function getclassnode(classname,doc){
doc=doc||document;
var node=[],i=0,j=0,t;
var allnode=doc.getElementsByTagName("*");
while(t=allnode[i]){
if(RegExp(classname).test(t.className)){
node[j]=t;
j++;
}
i++;
}
return node;
}

自从用了JQ后,把原生的JS操作都忘的差不多了,偶尔复习下,感觉特麻烦,郁闷.
补上一点今天发现的JS要注意的地方,如果一个JS已经引入到了当前文档,即使移除引入节点,通过该引入JS文件定义的变量,函数等仍然有效,因为已经加载到了当前的文档环境,如下代码:


代码如下:

document.getElementsByTagName("head")[0].removeChild(document.getElementsByTagName("head")[0].getElementsByTagName("script")[0]);

(0)

相关推荐

  • js的写法基础分析

    var a=false; !a&&alert("hi"); 解释 a为真才继续往下执行,所以会弹出hi var a=a||"hi"; 解释 当a为假的时候会继续执行,当a为真的时候跳出这个语句,所以可以通过这个办法复制默认值 上面的方法并非所有语言都是如此处理,比如PHP $a=@$a||"hi"; echo $a;//1 php把(@$a||"hi")之后的值赋值过去了... $a=true; !$a&

  • js命名空间写法示例

    本文实例分析了js命名空间写法.分享给大家供大家参考,具体如下: 很早知道这种写法,由于基础面向对象不够扎实一直在回避,但是面对整站这种方法还是有必要会 html部分: <div id="div1">111</div> <div id="div2">现实</div> <div id="div3">层</div> <div class="tab">

  • JavaScript 装逼指南(js另类写法)

    下面就是具体的写法,建议大家逐个测试一下,加深印象 1.转Boolean类型 这个较为常用. !!'a'//true 通过两个取反,可以强制转换为Boolean类型. !!是将表达式强制转化为bool值的运算,运算结果为true或false,表达式是什么值,结果就是对应的bool值,不再取非. 不是取非再取非的意思!!! !!false=false;    要注意false和"false" 的区别!!!!! !!"false"=true; !!true=true;

  • js另类写法

    实现功能估计貌似于这样: var a = function(s){alert(s)}; var b = function(s){confirm(s)}; var aa = [a,b]; aa[1](1); aa[0](2); [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 代码运行到 test() 后,要调用已经写好的方法 E() 并传递 2 个参数 一个就是所谓对象的 ju . 另一个就是一个才写的函数 然后把这两个参数传递到了 E() 方法,当然,E()方法已经在等参数了 当他等

  • 常用原生JS兼容性写法汇总

    就来总结一下简单的东西 备注:一下的方法都是包裹在一个EventUtil对象里面的,直接采用对象字面量定义方法了... ①添加事件方法 addHandler:function(element,type,handler){ if(element.addEventListener){//检测是否为DOM2级方法 element.addEventListener(type, handler, false); }else if (element.attachEvent){//检测是否为IE级方法 ele

  • 今天是星期几的4种JS代码写法

    第一种写法 复制代码 代码如下: var str = "";  var week = new Date().getDay();  if (week == 0) {          str = "今天是星期日";  } else if (week == 1) {          str = "今天是星期一";  } else if (week == 2) {          str = "今天是星期二";  } else

  • Firefox和IE浏览器兼容JS脚本写法小结

    1.window.event兼容脚本 function getEvent(){ //获取浏览器事件,同时兼容ie和ff的写法  if(document.all) return window.event;  func=getEvent.caller;  while(func!=null){  var arg0=func.arguments[0];  if(arg0){  if((arg0.constructor==Event   arg0.constructor ==MouseEvent)   (

  • 通用JS事件写法实现代码

    <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>test</title> <script language="javascript" type="text/javascript"> window.onload = function() { var oImg = document.getElementById("

  • js no-repeat写法 背景不重复

    复制代码 代码如下: backgroundRepeat = "no-repeat"

  • 利用java、js或mysql计算高德地图中两坐标之间的距离

    前言 因为工作的原因,最近在做与地图相关的应用,使用了高德地图,研究了下高德地图计算两坐标距离的方法,官网上提供的开发包中有相关的方法,但是我的产品中比较特殊,无法直接使用提供的方法,所以就自己封装了相关计算方法,供大家参考,下面话不多说了,来一起看看详细的介绍吧. Java实现 首先定义一个用于存储经纬度的类,这里起个名字叫:LngLat package amap; import java.text.DecimalFormat; import java.text.DecimalFormatSy

随机推荐