6.最常用的JavaScript日期函数,希望本文所述对大

2019-07-17 作者:小鱼儿主页高手论坛   |   浏览(155)

概述

小鱼儿主页高手论坛,本文实例呈报了JavaScript让Textarea扶助tab开关的办法。分享给我们供我们参照他事他说加以考察。具体完结格局如下:

1.javascript的数组API:

本文实例陈述了jQuery模拟红客帝国矩阵效果的艺术。分享给我们供大家参照他事他说加以考察。具体实现情势如下:

Javascript中的功用域和上下文的完结是Javascript语言独有的特色,从某种程度上来讲,Javascript语言是可怜灵活的。Javascript中的函数能够利用形形色色的上下文,作用域也可以棉被服装进和保存。正是由于那些特点,Javascript中也提供了繁多很有用的设计模式。可是,效能域和上下文也是Javascript程序猿在支付中有的时候吸引的地点。
上边会向大家介绍Javascript中成效域和上下文的概念,以及它们的不一致。

HTMLTextAreaElement.prototype.getCaretPosition = function () {
//return the caret position of the textarea
 return this.selectionStart;
};
HTMLTextAreaElement.prototype.setCaretPosition = function (position) {
//change the caret position of the textarea
 this.selectionStart = position;
 this.selectionEnd = position;
 this.focus();
};
HTMLTextAreaElement.prototype.hasSelection = function () {
//if the textarea has selection then return true
 if (this.selectionStart == this.selectionEnd) {
  return false;
 } else {
  return true;
 }
};
HTMLTextAreaElement.prototype.getSelectedText = function () {
//return the selection text
 return this.value.substring(this.selectionStart, this.selectionEnd);
};
HTMLTextAreaElement.prototype.setSelection = function (start, end) {
//change the selection area of the textarea
 this.selectionStart = start;
 this.selectionEnd = end;
 this.focus();
};
var textarea = document.getElementsByTagName('textarea')[0]; 
textarea.onkeydown = function(event) {
 //support tab on textarea
 if (event.keyCode == 9) { //tab was pressed
  var newCaretPosition;
  newCaretPosition = textarea.getCaretPosition()   " ".length;
  textarea.value = textarea.value.substring(0, textarea.getCaretPosition())   " "   textarea.value.substring(textarea.getCaretPosition(), textarea.value.length);
  textarea.setCaretPosition(newCaretPosition);
  return false;
 }
 if(event.keyCode == 8){
 //backspace
  if (textarea.value.substring(textarea.getCaretPosition() - 4, textarea.getCaretPosition()) == " ") {
  //it's a tab space
   var newCaretPosition;
   newCaretPosition = textarea.getCaretPosition() - 3;
   textarea.value = textarea.value.substring(0, textarea.getCaretPosition() - 3)   textarea.value.substring(textarea.getCaretPosition(), textarea.value.length);
   textarea.setCaretPosition(newCaretPosition);
  }
 }
 if(event.keyCode == 37){ //left arrow
  var newCaretPosition;
  if (textarea.value.substring(textarea.getCaretPosition() - 4, textarea.getCaretPosition()) == " ") {
  //it's a tab space
   newCaretPosition = textarea.getCaretPosition() - 3;
   textarea.setCaretPosition(newCaretPosition);
  } 
 }
 if(event.keyCode == 39){
 //right arrow
  var newCaretPosition;
  if (textarea.value.substring(textarea.getCaretPosition()   4, textarea.getCaretPosition()) == " ") {
  //it's a tab space
   newCaretPosition = textarea.getCaretPosition()   3;
   textarea.setCaretPosition(newCaretPosition);
  }
 } 
}
//定义数组 
var pageIds = new Array(); 
pageIds.push('A'); 
数组长度 
pageIds.length; 
//shift:删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined 
var a = [1,2,3,4,5]; 
var b = a.shift(); //a:[2,3,4,5] b:1 
//unshift:将参数添加到原数组开头,并返回数组的长度 
var a = [1,2,3,4,5]; 
var b = a.unshift(-2,-1); //a:[-2,-1,1,2,3,4,5] b:7 
//注:在IE6.0下测试返回值总为undefined,FF2.0下测试返回值为7,所以这个方法的返回值不可靠,需要用返回值时可用splice代替本方法来使用。 
//pop:删除原数组最后一项,并返回删除元素的值;如果数组为空则返回undefined 
var a = [1,2,3,4,5]; 
var b = a.pop(); //a:[1,2,3,4] b:5 
//push:将参数添加到原数组末尾,并返回数组的长度 
var a = [1,2,3,4,5]; 
var b = a.push(6,7); //a:[1,2,3,4,5,6,7] b:7 
//concat:返回一个新数组,是将参数添加到原数组中构成的 
var a = [1,2,3,4,5]; 
var b = a.concat(6,7); //a:[1,2,3,4,5] b:[1,2,3,4,5,6,7] 
//splice(start,deleteCount,val1,val2,):从start位置开始删除deleteCount项,并从该位置起插入val1,val2, 
var a = [1,2,3,4,5]; 
var b = a.splice(2,2,7,8,9); //a:[1,2,7,8,9,5] b:[3,4] 
var b = a.splice(0,1); //同shift 
a.splice(0,0,-2,-1); var b = a.length; //同unshift 
var b = a.splice(a.length-1,1); //同pop 
a.splice(a.length,0,6,7); var b = a.length; //同push 
//reverse:将数组反序 
var a = [1,2,3,4,5]; 
var b = a.reverse(); //a:[5,4,3,2,1] b:[5,4,3,2,1] 
//sort(orderfunction):按指定的参数对数组进行排序 
var a = [1,2,3,4,5]; 
var b = a.sort(); //a:[1,2,3,4,5] b:[1,2,3,4,5] 
//slice(start,end):返回从原数组中指定开始下标到结束下标之间的项组成的新数组 
var a = [1,2,3,4,5]; 
var b = a.slice(2,5); //a:[1,2,3,4,5] b:[3,4,5] 
//join(separator):将数组的元素组起一个字符串,以separator为分隔符,省略的话则用默认用逗号为分隔符 
var a = [1,2,3,4,5]; 
var b = a.join("|"); //a:[1,2,3,4,5] b:"1|2|3|4|5" 

html部分如下:

作用域 VS 上下文

企望本文所述对大家的javascript程序设计具备援救。

2.dom最常用API:

<div id="container">
  <div style="width:10px; word-break :break-all">
    10001001110010010010000
  </div>
  <div style="width:10px; word-break :break-all;margin-left:30px">
    the answer is in your mind
  </div>
</div>

先是要表明的十分重大的少数是效用域和上下文实际不是同二个概念,它们指代的并非同二个事物。作为三个前端的菜逼,日常拜望到部分小说把这四个概念弄混,结果有些东西越看越不知晓。这五个概念一般被歪曲了相当短一段时间了。因而,查了多数资料,轻松表达下那五个概念。:stuck_out_tongue_closed_eyes:
在Javascript中,当贰个函数被调用时都会有多个作用域和上下文和这么些函数绑定在同步。从根本上来讲,成效域是依靠函数的而上下文是依靠对象的。换句话说,功效域适用于函数被调用时函数中变量的访谈权限。上下文平时是指“this”关键字的值,“this”是有所如今实行代码的靶子的援用。

你恐怕感兴趣的著作:

  • JavaScript得到并改造input标签name属性的方法
  • javascript兑现依次输入input自动定焦
  • javascript使用正则调整input输入框允许输入的值方法大全
  • input 日期选择成效的javascript代码
  • JavaScript兑现点击自动选取TextArea文本的格局
  • 贰个JavaScript管理textarea中的字符成每一行实例
  • JavaScript决断textarea值是或不是为空并交付相应提醒
  • Javascript 文本框textarea中度随内容自适应抓牢降低
  • JavaScript实现为input与textarea自定义hover,focus效果的方法
//document方法: 
getElementById(id) Node 返回指定结点的引用 
getElementsByTagName(name) NodeList 返回文档中所有匹配的元素的集合 
createElement(name) Node Node 
createTextNode(text) Node 创建一个纯文本结点 
ownerDocument Document 指向这个节点所属的文档 
documentElement Node 返回html节点 
document.body Node 返回body节点 
//element方法: 
getAttribute(attributeName) String 返回指定属性的值 
setAttribute(attributeName,value) String 给属性赋值 
removeAttribute(attributeName) String 移除指定属性和它的值 
getElementsByTagName(name) NodeList 返回结点内所有匹配的元素的集合 
//node方法: 
appendChild(child) Node 给指定结点添加一个新的子结点 
removeChild(child) Node 移除指定结点的子结点 
replaceChild(newChild,oldChild) Node 替换指定结点的子结点 
insertBefore(newChild,refChild) Node 在同一层级的结点前面插入新结点 
hasChildNodes() Boolean 如果结点有子结点则返回true 
//node属性: 
nodeName String 以字符串的格式存放结点的名称 
nodeType String 以整型数据格式存放结点的类型 
nodeValue String 以可用的格式存放结点的值 
parentNode Node 指向结点的父结点的引用 
childNodes NodeList 指向子结点的引用的集合 
firstChild Node 指向子结点结合中的第一个子结点的引用 
lastChild Node 指向子结点结合中的最后一个子结点的引用 
previousSibling Node 指向前一个兄弟节点;如果这个节点就是兄弟节点,那么该值为null 
nextSibling Node 指向后一个兄弟节点;如果这个节点就是兄弟节点,那么该值为null

css部分之类:

变量作用域

3.网络搜藏的二个map对象:

#container div{padding:10px;position:absolute;border:0px dotted brown;width:0px;color:green;text-shadow: 1px 1px 3px #cccccc;}
.text{padding:10px;color:#ccc;}
#panel{width:400px;margin:0 auto;color:white;margin-top:20%;font-size:15px;font-weight:bold;z-index:99999;background:black;}

变量能够被定义在局域或全局意义域中,分外号为局地变量和全局变量。全局变量是指在函数体外申明的变量,在先后的其它地点都足以访问全局变量。局地变量是指在函数体钦赐义的变量,它仅能够在函数体内依然嵌套的函数内被访问,何况无法在函数外界被访问。
Javascript近来并不帮衬块级功效域(在if、switch、for等语句中定义的变量)。那意味着在块钦赐义的变量,在块外也得以访问。不过,在ES6中,我们能够利用“let”关键字定义块级功用域。
关于成效域的内容,大家能够查下其他材料,这一部分剧情相对简便易行些。

function HashMap() 
{ 
/** Map 大小 **/ 
var size = 0; 
/** 对象 **/ 
var entry = new Object(); 
/** 存 **/ 
this.put = function (key , value) 
{ 
if(!this.containsKey(key)) 
{ 
size    ; 
} 
entry[key] = value; 
} 
/** 取 **/ 
this.get = function (key) 
{ 
return this.containsKey(key) ? entry[key] : null; 
} 
/** 删除 **/ 
this.remove = function ( key ) 
{ 
if( this.containsKey(key) && ( delete entry[key] ) ) 
{ 
size --; 
} 
} 
/** 是否包含 Key **/ 
this.containsKey = function ( key ) 
{ 
return (key in entry); 
} 
/** 是否包含 Value **/ 
this.containsValue = function ( value ) 
{ 
for(var prop in entry) 
{ 
if(entry[prop] == value) 
{ 
return true; 
} 
} 
return false; 
} 
/** 所有 Value **/ 
this.values = function () 
{ 
var values = new Array(); 
for(var prop in entry) 
{ 
values.push(entry[prop]); 
} 
return values; 
} 
/** 所有 Key **/ 
this.keys = function () 
{ 
var keys = new Array(); 
for(var prop in entry) 
{ 
keys.push(prop); 
} 
return keys; 

} 
/** Map Size **/ 
this.size = function () 
{ 
return size; 
} 
/* 清空 */ 
this.clear = function () 
{ 
size = 0; 
entry = new Object(); 
} 
} 
var map = new HashMap(); 
/* 
map.put("A","1"); 
map.put("B","2"); 
map.put("A","5"); 
map.put("C","3"); 
map.put("A","4"); 
*/ 
/* 
alert(map.containsKey("XX")); 
alert(map.size()); 
alert(map.get("A")); 
alert(map.get("XX")); 
map.remove("A"); 
alert(map.size()); 
alert(map.get("A")); 
*/ 
/** 同时也可以把对象作为 Key **/ 
/* 
var arrayKey = new Array("1","2","3","4"); 
var arrayValue = new Array("A","B","C","D"); 
map.put(arrayKey,arrayValue); 
var value = map.get(arrayKey); 
for(var i = 0 ; i < value.length ; i  ) 
{ 
//alert(value[i]); 
} 
*/ 
/** 把对象做为Key时 ,自动调用了该对象的 toString() 方法 其实最终还是以String对象为Key**/ 
/** 如果是自定义对象 那自己得重写 toString() 方法 否则 . 就是下面的结果 **/ 
function MyObject(name) 
{ 
this.name = name; 
} 
/** 
function MyObject(name) 
{ 
this.name = name; 
this.toString = function () 
{ 
return this.name; 
} 
} 
**/ 
var object1 = new MyObject("小张"); 
var object2 = new MyObject("小名"); 
map.put(object1,"小张"); 
map.put(object2,"小名"); 
alert(map.get(object1)); 
alert(map.get(object2)); 
map.remove("xxxxx"); 
alert(map.size()); 
/** 运行结果 小名 小名 size = 1 **/ 
/** 如果改成复写toString()方法的对象 , 效果就完全不一样了 **/ 

js部分如下:

“this”上下文

4.常用的数字函数:

$(function() {
  for (var i = 0; i < 3; i  ) $('div', '#container').clone().prependTo('#container');
  //克隆一遍增加数据
  range();
  setInterval(drop, 150); //速度150毫秒
});
//排列
function range() {
  var num = 1;
  $('div', '#container').each(function(i) {
    var ww = $(window).width(); //窗口宽度
    var wh = $(window).height();
    var ol = $(this).offset().left; //距左边像素
    var ot = -20; //$(this).offset().top;//从头部以上开始
    i  ;
    if (i % 22 == 0) num = 1; //22个一排
    $(this).css({
      "left": (ol   num * 60)   "px",
      "top": (ot   Math.ceil(i / 2) * 30)   "px"
    }); //距左距离保持,距上距离变化
    num  ;
  });
}
//降落
function drop() {
  $('div', '#container').each(function(i) {
    var wh = $(window).height();
    var ol = $(this).offset().left;
    var ot = $(this).offset().top;
    var rnd = Math.round(Math.random() * 100);
    var rnd2 = Math.round(Math.random() * 50);
    //i = i == 0 ? 0.5 : i;
    $(this).css({
      "top": (ot   rnd   rnd2)   "px"
    }); //降落的速度
    if (ot >= wh) //如果掉到窗口以下
    {
      //$(this).css({"top":wh-20  "px"});
      //停在当前位置不让继续从上往下掉
      $(this).css({
        "top": -5 * rnd   "px"
      }); //从顶部以上开始
    }
  });
}

本文由小鱼儿玄机30码发布于小鱼儿主页高手论坛,转载请注明出处:6.最常用的JavaScript日期函数,希望本文所述对大

关键词: 小鱼儿玄机30码