手写js原生代码,手写代码编程

本文目录一览:

原生JS是自己手写的JS吗?

原生js就是使用javascript来进行一系列的开发,

非原生就是使用了js框架,像jq等就不是原生的,它是js的封装。

手写 JS 中常用函数的源码 ( 持续更新… )

在日常开发中,我们经常会用到一些函数,如:Arrary.map/filter/forEach 等。今天我们来一起研究下这些函数的源码,探讨探讨有没有更好的方案/方法,以便更好的理解和应用到项目中。

call/apply 执行函数,并改变函数的作用域。

bind 返回一个改变作用域后的函数,需要时执行新函数。

apply 与 call 不同的是,参数是以数组形式整体传入, call 是单个传入

bind 返回一个新函数

关于 instanceOf ,这里 有详解

new 主要做了以下几件事:

调用数组的每个元素,并将元素传递给回调函数,空数组不执行回调函数。

方法按照原始数组元素顺序依次处理元素,并返回一个新数组。

返回数组中的元素为原始数组元素调用函数处理后的值,不会改变原始数组。

数组中的每个元素都调用一次函数执行:返回通过测试(函数内判断)的数组的第一个元素的值。

当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。

如果没有符合条件的元素返回 undefined 。

数组中的每个元素都调用一次函数执行:返回传入一个测试条件(函数)符合条件的数组第一个元素位置。

当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。

如果没有符合条件的元素返回 -1 。

方法按照原始数组元素顺序依次筛选符合条件的元素,并返回一个新数组。

返回数组中的元素是通过检查指定数组中符合条件的所有元素,不会改变原始数组。

会依次执行数组的每个元素:用于检测数组中的元素是否满足指定条件(函数提供)。

如果有一个元素满足条件,则表达式返回 true ,剩余的元素不会再执行检测。

如果没有满足条件的元素,则返回 false 。

指定函数检测数组中的所有元素:用于检测数组所有元素是否都符合指定条件(通过函数提供)。

如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。

如果所有元素都满足条件,则返回 true 。

接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。

接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。

判断一个数组是否包含一个指定的值,如果是返回 true ,否则 false 。

将从头到尾地检索数组,看它是否含有对应的元素。开始检索的位置在数组 start 处或数组的开头(没有指定 start 参数时)。如果找到一个 item ,则返回 item 的第一次出现的位置。

默认开始位置的索引为 0 。

如果在数组中没找到指定元素则返回 -1 。

数组扁平化,把多维数组转换为一维数组

哪位JS高手帮我写一下代码

慢了一步~不过既然写了,就给你啦~

测试页面在附件里。

js部分代码如下:

function foSort(sortId,direction){

      var sid=parseInt(sortId);

 var ot=document.getElementById(“DHlist”);

 if (sid1 || sidot.rows.length-2){return false;}

 var nsid=direction.toLowerCase()==”up”? (sid=1? ot.rows.length-2:sid-1):(sid+1ot.rows.length-2? 1:sid+1);

 var svs=document.getElementsByName(“sort”);

 

 //替换sort的input的value–start–

 //看你的需要了,如果是要随着上下一起移动,可以把这一段注释掉

 var tsv=svs[sid-1].value; //这里转换为0开头的索引,sort的input比表格少2行,分别是开头和结尾    

 svs[sid-1].value=svs[nsid-1].value;

 svs[nsid-1].value=tsv;  

 //—end–

 

 //还原编号列—start—

 //如果要求编号也一起山下移动,可把此段注释掉

 var tid=ot.rows[sid].cells[0].innerHTML;

 ot.rows[sid].cells[0].innerHTML=ot.rows[nsid].cells[0].innerHTML;

      ot.rows[nsid].cells[0].innerHTML=tid;

 //–end—

 

 //上下切换–start—-

      var tr=ot.rows[sid].innerHTML;  

 ot.rows[sid].innerHTML=ot.rows[nsid].innerHTML;

 ot.rows[nsid].innerHTML=tr;

 //—end—

}

完整HTML+js代码:

html

headmeta http-equiv=”Content-Type” content=”text/html; charset=gb2312″

/headbody

style type=”text/css”

table {border-collapse:collapse;

width:80%;

text-align:center;

}

th {

background:#eee;

}

th,td {

line-height:25px;

}

th,td {

border-bottom:1px solid #ccc;

}

/style

form method=”post”

table id=”DHlist”

trth编号/thth导航名/thth导航说明/thth操作/thth排序/th/tr

tr

input type=”hidden” value=”1″ name=”sort” /

td1/td

td导航1/td

td导航说明1/td

tda href=”?action=updateid=1″修改/anbsp;#124;nbsp;a href=”?action=deleteid=1″删除/a/td

tdinput type=”button” onClick=”foSort(this.parentNode.parentNode.cells[0].innerHTML,’up’)”value=”向上” /input type=”button” onClick=”foSort(this.parentNode.parentNode.cells[0].innerHTML,’down’)”value=”向下” //td

/tr

tr

input type=”hidden” value=”2″ name=”sort” /

td2/td

td导航2/td

td导航说明2/td

tda href=”?action=updateid=1″修改/anbsp;#124;nbsp;a href=”?action=deleteid=1″删除/a/td

tdinput type=”button” onClick=”foSort(this.parentNode.parentNode.cells[0].innerHTML,’up’)”value=”向上” /input type=”button” onClick=”foSort(this.parentNode.parentNode.cells[0].innerHTML,’down’)”value=”向下” //td

/tr

tr

input type=”hidden” value=”3″ name=”sort” /

td3/td

td导航3/td

td导航说明3/td

tda href=”?action=updateid=3″修改/anbsp;#124;nbsp;a href=”?action=deleteid=1″删除/a/td

tdinput type=”button” onClick=”foSort(this.parentNode.parentNode.cells[0].innerHTML,’up’)”value=”向上” /input type=”button” onClick=”foSort(this.parentNode.parentNode.cells[0].innerHTML,’down’)”value=”向下” //td

/tr

trtd colspan=”6″input type=”submit” value=”提交” name=”send” /td/tr

/table

/form

script type=”text/javascript”

function foSort(sortId,direction){

    var sid=parseInt(sortId);

 var ot=document.getElementById(“DHlist”);

 if (sid1 || sidot.rows.length-2){return false;}

 var nsid=direction.toLowerCase()==”up”? (sid=1? ot.rows.length-2:sid-1):(sid+1ot.rows.length-2? 1:sid+1);

 var svs=document.getElementsByName(“sort”);

 //替换sort的input的value–start–

 //看你的需要了,如果是要随着上下一起移动,可以把这一段注释掉

 var tsv=svs[sid-1].value; //这里转换为0开头的索引,sort的input比表格少2行,分别是开头和结尾  

 svs[sid-1].value=svs[nsid-1].value;

 svs[nsid-1].value=tsv;

 //—end–

 //还原编号列—start—

 //如果要求编号也一起山下移动,可把此段注释掉

 var tid=ot.rows[sid].cells[0].innerHTML;

 ot.rows[sid].cells[0].innerHTML=ot.rows[nsid].cells[0].innerHTML;

    ot.rows[nsid].cells[0].innerHTML=tid;

 //–end—

 //上下切换–start—-

    var tr=ot.rows[sid].innerHTML;

 ot.rows[sid].innerHTML=ot.rows[nsid].innerHTML;

 ot.rows[nsid].innerHTML=tr;

 //—end—

}

/script

/body

/html

原创文章,作者:QFWN,如若转载,请注明出处:https://www.506064.com/n/148135.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
QFWNQFWN
上一篇 2024-11-02 13:15
下一篇 2024-11-02 13:15

相关推荐

  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • JS Proxy(array)用法介绍

    JS Proxy(array)可以说是ES6中非常重要的一个特性,它可以代理一个数组,监听数据变化并进行拦截、处理。在实际开发中,使用Proxy(array)可以方便地实现数据的监…

    编程 2025-04-29
  • Python字符串宽度不限制怎么打代码

    本文将为大家详细介绍Python字符串宽度不限制时如何打代码的几个方面。 一、保持代码风格的统一 在Python字符串宽度不限制的情况下,我们可以写出很长很长的一行代码。但是,为了…

    编程 2025-04-29
  • Python基础代码用法介绍

    本文将从多个方面对Python基础代码进行解析和详细阐述,力求让读者深刻理解Python基础代码。通过本文的学习,相信大家对Python的学习和应用会更加轻松和高效。 一、变量和数…

    编程 2025-04-29
  • 仓库管理系统代码设计Python

    这篇文章将详细探讨如何设计一个基于Python的仓库管理系统。 一、基本需求 在着手设计之前,我们首先需要确定仓库管理系统的基本需求。 我们可以将需求分为以下几个方面: 1、库存管…

    编程 2025-04-29
  • Python满天星代码:让编程变得更加简单

    本文将从多个方面详细阐述Python满天星代码,为大家介绍它的优点以及如何在编程中使用。无论是刚刚接触编程还是资深程序员,都能从中获得一定的收获。 一、简介 Python满天星代码…

    编程 2025-04-29
  • 写代码新手教程

    本文将从语言选择、学习方法、编码规范以及常见问题解答等多个方面,为编程新手提供实用、简明的教程。 一、语言选择 作为编程新手,选择一门编程语言是很关键的一步。以下是几个有代表性的编…

    编程 2025-04-29
  • Python实现简易心形代码

    在这个文章中,我们将会介绍如何用Python语言编写一个非常简单的代码来生成一个心形图案。我们将会从安装Python开始介绍,逐步深入了解如何实现这一任务。 一、安装Python …

    编程 2025-04-29
  • 怎么写不影响Python运行的长段代码

    在Python编程的过程中,我们不可避免地需要编写一些长段代码,包括函数、类、复杂的控制语句等等。在编写这些代码时,我们需要考虑代码可读性、易用性以及对Python运行性能的影响。…

    编程 2025-04-29
  • Python海龟代码简单画图

    本文将介绍如何使用Python的海龟库进行简单画图,并提供相关示例代码。 一、基础用法 使用Python的海龟库,我们可以控制一个小海龟在窗口中移动,并利用它的“画笔”在窗口中绘制…

    编程 2025-04-29

发表回复

登录后才能评论