Wikibooks zhwikibooks https://zh.wikibooks.org/wiki/Wikibooks:%E9%A6%96%E9%A1%B5 MediaWiki 1.47.0-wmf.15 first-letter Media Special Talk User User talk Wikibooks Wikibooks talk File File talk MediaWiki MediaWiki talk Template Template talk Help Help talk Category Category talk Transwiki Transwiki talk Wikijunior Wikijunior talk Subject Subject talk TimedText TimedText talk Module Module talk Event Event talk Java/数据类型 0 7353 186767 133767 2026-08-16T13:48:42Z Pawsdt 68279 /* 内置类型 */ 186767 wikitext text/x-wiki [[Java]] > [[Java/数据类型|数据类型]] ---- ==上下文链接== <div class="BookContext"> [[Java|目录]] 上一节 [[Java/开发工具|Java开发工具]] 下一节 [[Java/变量与常量|变量与常量]] </div> ==数据类型== '''数据类型'''是程序设计语言描述事物、对象的方法。Java数据类型分为'''内置类型'''和'''扩展类型'''两大类。内置类型就是Java语言本身提供的基本数据类型,比如,整型数,浮点数,字符,布尔值等等。而扩展类型则是Java语言根据基本类型扩展出的其他类型,Java要求所有的扩展类型都必须包括在类定义里面,这就是Java被叫做面向对象编程语言的原因。不同于像SmallTalk一样的纯粹的面向对象语言,Java保留了基本数据类型,但这主要是为满足Java高效率执行的需求。JRE(Java Runtime Environment)提供了丰富实用的扩展类型供程序员使用,程序员也可以根据需要通过[[Java/类与对象|类]]的[[Java/继承|继承机制]]自己扩展。 ==内置类型== Java的内置类型包括如下几种: {|class="wikitable" |- ! 类型名称 || 类型定义 || 类型取值 |- ! boolean | 布尔值,作二元判断 | true,false |- ! byte | 8位有符号整数 | 最小值-128,最大值127 |- ! short | 16位有符号整数 | 最小值-32768,最大值32767 |- ! int | 32位有符号整数 | 最小值-2147483648(-2<sup>31</sup>),最大值2147483647(2<sup>31</sup>-1) |- ! long | 64位有符号整数 | -2<sup>63</sup>~(2<sup>63</sup>-1) |- ! float | 32位浮点数 | 1.4E-45~3.4028235E38 |- ! double | 64位浮点数 | 4.9E-324~1.7976931348623157E308 |- ! char | 32位Unicode字符(UTF-16) | 不适用(可以与int互相转换) |} 内置类型也称作“基本类型”(Primitive Types),是其他类型的基础。所有的其他类型(包括Java核心库和用户自定义类型)都是通过基本类型扩展而来的。这些类型是我们描述对象最基本的方式。比如:判断是否使用boolean;衡量大小、长度使用各种整型(包括short,int,long)和浮点数(float和double);表达字符使用char;而处理二进制数据块使用byte。Java也提供了基本类型的类包裹(Wrapper),这些类包裹都包括在了java.lang包里面作为Java的语言基础,比如对int的类包裹是Integer类。提供这些类包裹的原因主要是为了在某些接口上提供和类(对象)一致的接口,比如在泛型设计上的数据模板等等。而且相应的包裹类中还提供了对基本数据类型的操作,比如int Integer.parseInt(String s,int radix)将字符串转化为相应进制的整型数。 ==浮点数== ===浮点值的精度=== 浮点值与我们通常所使用的小数是不同的。在使用中,它往往是难以确定的。常见的问题是定义了一个浮点数,经过一系列的计算,在数学上,它本来应该等于某个确定值 。 但是使用相等运算符(==)进行判断时,往往得出的结论是不等;或者本来应该大于/小于某个特定值,结果却可能刚好相反。因此,对于浮点值比较时,不能简单地使用==, >, <等运算符。 我们做计算时,往往都有一个精度,或由于客观事实,或由于我们的需要。这样我们比较两个浮点数时,就不是简单的使用比较运算符了,而是在允许的精度之内作比较。比如:比较两个浮点数(f1, f2)是否相等,精度为p <pre> | f1 - f2 | < p ---------- ''true'' | f1 - f2 | > p ---------- ''false'' </pre> 上面的||表示绝对值运算,java.lang.Math类对绝对值运算提供了支持。 同样,比较f1是否大于f2,如下: <pre> ( f1 - p ) > f2 ---------- ''true'' </pre> 这种方法适用于大多数数据处理情况,但也有时候,必须是完全精确计算,这样就不能使用这种方法了,而应该采用java.math.BigDecimal和java.math.BigInteger来计算。 </p> 关于浮点数精度问题还可以参看[https://www.ibm.com/developerworks/cn/java/j-jtp0114/index.html 您的小数点到哪里去了] ==值类型与引用类型== 不同于C/C++语言,Java中是看不到指针概念的,这是因为Java认为对指针的误操作会引起内存的外溢,而且对指针的管理应该是虚拟机本身的事情,而和程序无关。Java虚拟机会对引用对象的次数做出管理,并决定对那些引用次数变为零的对象在适当的时候做出回收释放内存的操作,这里称之为“垃圾回收”。比如: <syntaxhighlight lang="java"> String text = "World"; text = "Hello " + text; </syntaxhighlight> 在上段程序中,先行赋值了的text在下一段代码中会被赋予新值,做为旧值的对象"World"因为没有别的引用而不可能再被使用到,所以它将进入垃圾回收阶段。所以,大家可以看出,在Java中,对象的引用其实就类似于指针,只是少了C/C++中的“*”号,而且因为有垃圾回收机制,所以不用额外delete掉旧数据。对于熟知C/C++的朋友可以知道,在调用函数的时候,传递基本类型,传递指针和传递引用是有区别的,这里将示例如下: <syntaxhighlight lang="c"> int x = 10; void func1(int a){ a++; return; } void func2(int* p_a){ (*p_a)++; p_a++; return; } void func3(int& a){ a++; return; } int main(){ func1(x);//x=10 func2(x);//x=11 func3(x);//x=12 return 0; } </syntaxhighlight> 如果将x传递分别传递到三个函数的结果是不一样的。对于func1来说,在传递的时候x将被赋值一遍给a,所以执行完a++以后,x的值是不变的还是10。而func2的参数是一个指针,传递的时候先取x的地址赋给p_a,执行完(*p_a)++之后因为p_a是指向x的,所以x本身会被加一,但是之后的p_a++只是将指针挪到下一个int数据上,并不会改变x的地址。最后,func3是传递引用,也就是说函数内的a和函数外的x本质上是同一个数,所以a++使得x本身加一。 看完C/C++的例子,我们来看Java的情况。因为Java分基本类型和对象类型两种,对于基本类型在调用函数的时候,Java都是传递值的,类似上例中的func1。而对于对象类型,Java是传递引用的,也就是说函数内和函数外是同一个对象。举个例子: <syntaxhighlight lang="java"> public class Test { public static void main(String[] args){ StringBuffer buffer = new StringBuffer(); for(String s : args){ strcat(buffer, s); } System.out.println(buffer.toString()); int x = 10; increaseOne(x); System.out.println(x); } public void strcat(StringBuffer sb, String s){ sb.append(s); } // 错误示例 public void increaseOne(int x){ x++; } } </syntaxhighlight> 上面的程序将命令行参数连接在一起并输出,其中strcat函数起到了连接作用,而我们用StringBuffer来构造新的字符串。在这里,buffer是在main函数里新建的StringBuffer,并传递给了strcat。注意,因为是引用传递,所以在strcat函数里的append操作其实就是main里的buffer,最后的输出的是连接起来的字符串。这里还给出了一个错误示范increaseOne,因为是传值调用,所以increaseOne执行完返回后,main函数里的x仍然是10。 {{bookCat}} c8gf6uqvj8n2n26ivxnm5yxbcei3uam JavaScript/目录 0 11637 186764 181718 2026-08-16T13:34:59Z Pawsdt 68279 stage 186764 wikitext text/x-wiki {{stages}} 本书是 Javascript 的入门指南,Javascript 是一种在网页和类似 E-mail 的网络应用中广泛使用的脚本语言。请不要把 Javascript 和 Java 混为一谈,Java 是另一门完全独立的编程语言,可用来编写单独的-{zh-cn:程序;zh-hant:程式;zh-sg:程式}-。 ''本书适用于 Javascript 1.6 以及之后的版本。本书内包含了多个版本的 Javascript。'' __NOTOC__ == 入门 == *[[../介绍|介绍]] {{stage|75|2018年5月4日 (五) 16:35 (UTC)}} *[[../Hello World!|Hello World!]] {{stage|100|2018年4月21日 (六) 17:00 (UTC)}} *[[../ES2018|下一代语法]] {{stage|0}} * [[JavaScript/JavaScript within HTML|JavaScript用于HTML]] * [[JavaScript/Handling Events|处理事件]] * [[JavaScript/Development Tools|开发工具]] * [[JavaScript/Self Test|自测试]] * [[JavaScript/Helpful hints|帮助提示]] == 基础 == * [[JavaScript/Lexical structure|词法结构]] ** [[JavaScript/Automatic semicolon insertion|自动分号插入]] ** [[JavaScript/Reserved words|保留字]] * [[../基本数据类型|基本数据类型]] {{stage|0|2020年11月}} ** [[JavaScript/Numbers|Number]] ** [[JavaScript/Strings|String]] ** [[JavaScript/Dates|Date]] ** [[JavaScript/Arrays|Array]] ** [[JavaScript/Regular expressions|正则表达式]] * [[../操作符和表达式|操作符和表达式]] {{stage|75|2007年7月}} ** [[JavaScript/显式类型转换|显式类型转换]] ** [[JavaScript/隐式类型转换|隐式类型转换]] * [[../函数|函数]] {{stage|50|2007年7月}} ** [[JavaScript/Anonymous functions|匿名函数]] * [[../面向对象编程|面向对象编程]] ** [[JavaScript/对象|对象]] ** [[JavaScript/构造函数和原型|构造函数和原型]] ** [[JavaScript/继承|继承]] ** [[JavaScript/访问控制|访问控制]] ** [[../内建对象|Date等内建对象]] {{stage|0|2007年7月}} * [[JavaScript/Control structures|控制结构]] * [[JavaScript/Class|class]] * [[../调试|调试]] {{stage|0|2007年7月}} * [[JavaScript/Optimization|优化]] * [[JavaScript/Strict mode|严格模式]] * [[JavaScript/Shell|Shell]] == 进阶 == * [[../匿名函数和闭包|匿名函数和闭包]] {{stage|50|2019年7月}} * [[../异步过程|异步过程]] {{stage|25|2019年7月}} * [[../对象与原型链|对象与原型链]] {{stage|0|2018年10月}} * [[../顺序访问|迭代器、生成器、异步生成器]] {{stage|0|2018年10月}} * [[../元编程|代理与元编程]] {{stage|0|2018年10月}} == 动态网站 == * [[../DHTML|动态网站]] {{stage|50|2007年7月}} * [[../DOM|文档对象模型(DOM)]] {{stage|25|2019年8月}} ** [[JavaScript/Runtime document manipulation|运行时文档操纵]] *** [[JavaScript/Finding elements|发现element]] *** [[JavaScript/Adding elements|增加elements]] *** [[JavaScript/Changing elements|改变element]] *** [[JavaScript/Removing elements|删除element]] *** [[JavaScript/Changing element styles|改变element风格]] * [[JavaScript/XMLHttpRequest|XMLHttpRequest]] * [[JavaScript/Handling HTML|Handling HTML]] * [[JavaScript/Event handling|事件处理]] ** [[JavaScript/Working with the mouse|鼠标的工作]] * [[../RESTful|与服务器通讯]] {{stage|0|2020年11月}} * [[../浏览器API|浏览器API概览]] {{stage|0|2020年11月}} == 在浏览器外运行JavaScript == * [[../Node|Node.js]] {{stage|0|2020年11月}} * [[../Deno|Deno]] {{stage|0|2020年11月}} * [[../Bun|Bun.js]] {{stage|0|2023年11月}} == 杂项 == * [[JavaScript/Forms|Form]] * [[JavaScript/Bookmarklets|Bookmarklet]] * [[JavaScript/Working with files|处理文件]] * [[JavaScript/Handling XML|处理XML]] * [[JavaScript/Handling JSON|处理JSON]] * [[JavaScript/Best practices|最佳实践]] == 附录 == * [[../相关站点|相关站点]] {{stage|50|2007年7月}} * [[../编程软件|JavaScript编程软件]] {{stage|0|2007年7月}} * [[../代码风格|代码风格]] {{stage|0|2020年11月}} == 相关书籍 == * [[:en:ActionScript_Programming|en:ActionScript 编程]] * [[:en:Authoring Webpages|en:编写网页]] * [[:en:Cascading Style Sheets|en:CSS]] * [[:en:Category:CodeCook/Languages/JavaScript|en:JavaScript 编程指南]] * [[:en:HyperText Markup Language|en:HTML]] * [[:en:Programming Ajax|en:Ajax 编程]] * [[:en:Web Development|en:Web 开发]] == 外部链接 == * [https://www.ecma-international.org/publications-and-standards/standards/ecma-262/ Website of ECMA-262] * [https://tc39.es/ecma262/ Latest specification (TC39)] * [https://developer.mozilla.org/en-US/docs/Web/JavaScript JavaScript at MDN Web Docs (formerly Mozilla) in different languages] * [https://www.codecademy.com/catalog/language/javascript JavaScript tutorial at codecademy.com] {{authors |works=英文Wikibooks |authors=[[User:Caiguanhao|Cai Guanhao]] }} [[en:Programming:JavaScript:Contents]] [[fr:Programmation javascript sommaire détaillé]] [[he:Javascript]] {{bookCat}} bu8syse0rvlufenuatovj71deq40fe5 JavaScript/子程序和对象 0 11663 186765 174876 2026-08-16T13:35:55Z Pawsdt 68279 /* 無參數的函數 */ 删标签 186765 wikitext text/x-wiki [[編程:JavaScript:目錄|<=目錄]] 函數(function)是 JavaScript 最重要部分之一。你可以用它整理代碼、減少代碼長度或建立參數。 ==無參數的函數== 無參數的函數是十分簡單的。 <syntaxhighlight lang="javascript"> function helloworld() { alert("Hello, World!"); } </syntaxhighlight> 當我們要在 HTML 文檔內調用這個函數,則用: <syntaxhighlight lang="javascript">helloworld();</syntaxhighlight> 現在組裝入網頁: <syntaxhighlight lang="html"> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <HTML> <HEAD> <TITLE>Some Page</TITLE> <script language="javascript"> function helloworld() { alert("Hello World!"); } </script> </HEAD> <BODY> <script lang="javascript"> helloworld(); </script> </BODY> </HTML> </syntaxhighlight> 不難吧?在這個問題上,我們只採用函數去節省不必要的代码輸入(而事實上上述示例確實增加了代码輸入,但只要把握這個思想,大多數情況下都是合用的),但當你學到帶有參數的函數時,那才是函數發光的原因! ==帶參數的函數== 我們就以一個簡單的例子開始,然後才深入瞭解。 包含有过程和结果返回。 <syntaxhighlight lang="javascript"> function addsubtract(thenumber) { if(thenumber>5){ thenumber--; } if(thenumber<5){ thenumber++; } return thenumber; } </syntaxhighlight> 這個程序以數字為變數。如果thenumber大於5,那麼thenumber就減一;如果thenumber小於5,thenumber則加一。 分解程序: <syntaxhighlight lang="javascript">function addsubtract(thenumber){......}</syntaxhighlight> 你應該見過這個東西,只不過是有點不一樣而已。現在在函數名稱後面多了一個<code>(thenumber)</code>。那裡就是我們定義一個將要使用的參數的地方(記得定義變量嗎?它們有相似的一面,但定義參數我們不用var都可以)。 <syntaxhighlight lang="javascript">if(thenumber>5){......}</syntaxhighlight> 這是假定(if)語句。如果圓括號內的語句是真(true),那麼就繼續執行波形括號內的語句。相似的方法有: <pre> X>Y(如果X大於Y) X<Y(如果X小於Y) X>=Y(如果X大於或等於Y) X<=Y(如果X小於或等於Y) X==Y(如果X等於Y) </pre> 將有更多類似方法,將在日後說明。 <pre>thenumber--;</pre> 假如Javascript是你的第一編程語言,你將不知道這是什麼意思。這十分簡單,就是對變量<code>thenumber</code>減一。這是<code>thenumber = thenumber - 1;</code>的縮寫版本。 <pre>thenumber++;</pre> 與上述一樣,只不過不是減而是加。 <pre>return thenumber;</pre> 這表示返回thenumber的值,後述將詳細提及。 下面的代碼就自己研究吧: <syntaxhighlight lang="html"> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <HTML> <HEAD> <TITLE>Some Page</TITLE> <script language="javascript"> function addsubtract(thenumber) { if(thenumber>5){ thenumber--; } if(thenumber<5){ thenumber++; } return thenumber; } </script> </HEAD> <BODY> <script language="javascript"> var number = addsubtract(6); alert(number); </script> </BODY> </HTML> </syntaxhighlight> 還有... <syntaxhighlight lang="javascript">var number = addsubtract(6);</syntaxhighlight> 這就是方便的地方了。number的值將為5,因為程序addsubtract的參數為6。 ==函数概论== 函数存在于它自己的上下文(context)中。 <syntaxhighlight lang="JavaScript"> // define a function function <function_name> (<parameters>) { <function_body> } // call a function <variable> = <function_name> (<arguments>); </syntaxhighlight> JavaScript支持[[w:函数式编程|函数式编程]]。函数派生自Object的一种数据类型。是头等公民。 == 函数声明== 函数有3种声明方式。传统方式为: <syntaxhighlight lang="JavaScript"> "use strict"; // conventional declaration (or 'definition') function duplication(p) { return p + "! " + p + "!"; } // call the function const ret = duplication("Go"); alert(ret); </syntaxhighlight> Construction via a variable and an expression: <syntaxhighlight lang="JavaScript"> "use strict"; // assign the function to a variable let duplication = function (p) { return p + "! " + p + "!"; }; const ret = duplication("Go"); alert(ret); </syntaxhighlight> 通过<code>new</code>运算符构造函数: <syntaxhighlight lang="JavaScript"> "use strict"; // using the 'new' constructor let duplication = new Function ("p", "return p + '! ' + p + '!'"); const ret = duplication("Go"); alert(ret); </syntaxhighlight> == 调用== 有3种函数调用的办法。传统办法是函数名后面跟随一对圆括号<code>( )</code> <syntaxhighlight lang="JavaScript"> "use strict"; function duplication(p) { return p + "! " + p + "!"; } // the conventional invocation method const ret = duplication("Go"); alert(ret); </syntaxhighlight> 如果脚本运行在浏览器中,有2种调用方式。使用浏览器提供的<code>window</code>对象。 <syntaxhighlight lang="JavaScript"> "use strict"; function duplication(p) { return p + "! " + p + "!"; } // via 'call' let ret = duplication.call(window, "Go"); alert(ret); // via 'apply' ret = duplication.apply(window, ["Go"]); alert(ret); </syntaxhighlight> 如果函数名后未跟随圆括号,那么表达式只是函数自身,而不是函数调用: <syntaxhighlight lang="JavaScript"> "use strict"; function duplication(p) { return p + "! " + p + "!"; } alert(duplication); // 'function duplication (p) { ... }' </syntaxhighlight> === 提升 === 函数声明会自动提升到作用域顶部。因此在源代码中可以先于函数声明就调用函数。 <syntaxhighlight lang="JavaScript"> "use strict"; // use a function above (in source code) its declaration const ret = duplication("Go"); alert(ret); function duplication(p) { return p + "! " + p + "!"; } </syntaxhighlight> == 立即被调函数 == 可以把函数声明与函数调用写在一起,称“立即被调函数表达式”(Immediately Invoked Function Expression, IIEF): <syntaxhighlight lang="JavaScript"> "use strict"; alert( // 'alert' to show the result // declaration plus invocation (function (p) { return p + "! " + p + "!"; })("Go") // ("Go"): invocation with the argument "Go" ); alert( // the same with 'arrow' syntax ((p) => { return p + "! " + p + "!"; })("Gooo") ); </syntaxhighlight> == 实参 == 函数调用时,函数的形参会被实参替换。 === 传值调用 === 函数的实参值复制给形参。形参值改编不影响实参。 <syntaxhighlight lang="JavaScript"> "use strict"; // there is one parameter 'p' function duplication(p) { // In this example, we change the parameter's value p = "NoGo"; alert("In function: " + p); return p + "! " + p + "!"; }; let x = "Go"; const ret = duplication(x); // is the modification of the argument done in the function visible here? No. alert("Return value: " + ret + " Variable: " + x); </syntaxhighlight> 对于非基本类型的对象,这种传值调用有令人惊讶的效果。如果函数修改了对象的数学,这种改编在函数之外也是可见的。 <syntaxhighlight lang="JavaScript"> "use strict"; function duplication(p) { p.a = 2; // change the property's value p.b = 'xyz'; // add a property alert("In function: " + JSON.stringify(p)); return JSON.stringify(p) + "! " + JSON.stringify(p) + "!"; }; let x = {a: 1}; alert("Object: " + JSON.stringify(x)); const ret = duplication(x); // is the modification of the argument done in the function visible here? Yes. alert("Return value: " + ret + " Object: " + JSON.stringify(x)); </syntaxhighlight> 为什么会这样?它与基础数据类型有不同的行为吗?并不! 函数接收了对象引用的拷贝。 因此,在函数内引用了同一个对象。对象本身只存在一次,但有两个(相同的)对该对象的引用。对象的属性是否由一个引用或另一个引用修改并没有什么区别。 另一个后果是引用本身的修改(例如,通过创建新对象)在外部例程中将不可见。直观上这与基础数据类型有相同行为。对新对象的引用存储在原引用的“拷贝”中。 现在我们不仅有两个引用(具有不同的值)而且还有两个不同的对象。 <syntaxhighlight lang="JavaScript" highlight="6" line> "use strict"; function duplication(p) { // modify the reference by creating a new object p = {}; p.a = 2; // change the property's value p.b = 'xyz'; // add a property alert("In function: " + JSON.stringify(p)); return JSON.stringify(p) + "! " + JSON.stringify(p) + "!"; }; let x = {a: 1}; alert("Object: " + JSON.stringify(x)); const ret = duplication(x); // is the modification of the argument done in the function visible here? No. alert("Return value: " + ret + " Object: " + JSON.stringify(x)); </syntaxhighlight> 注 1:这种参数传递技术的命名在不同语言中的使用并不一致。 有时它被称为“共享调用”(call-by-sharing)。 注 2:上述描述的 JavaScript 参数传递的后果与使用关键字 <code>const</code>的后果相当。后者将变量声明为“constant”。 此类变量无法更改。然而,如果它们引用了一个对象,则该对象的属性可以更改。 === 缺省值=== 如果调用函数时使用的参数少于其声明的形式参数,则多余的形式参数将保持未定义状态。 但是您可以通过在函数签名内赋一个值来定义这种情况的缺省值。 缺少对应实参的形式参数将得到它们的缺省值。 <syntaxhighlight lang="JavaScript" highlight="4, 8, 13, 16"> "use strict"; // two nearly identical functions; only the signature is slightly different function f1(a, b) { alert("The second parameter is: " + b) }; function f2(a, b = 10) { alert("The second parameter is: " + b) }; // identical invocations; different results f1(5); // undefined f1(5, 100); // 100 f2(5); // 10 f2(5, 100); // 100 </syntaxhighlight> === 可变数量的实参 === 对于某些函数,它们涉及不同数量的参数是“正常”的。 例如,考虑一个显示名称的函数。 在任何情况下都必须给出名字和姓氏,但也可能必须显示学术头衔或贵族头衔。 JavaScript 提供了不同的可能性来处理这种情况。 ==== 单独检查 ==== 可以检查“正常”参数以及附加参数以确定它们是否包含值。 <syntaxhighlight lang="JavaScript"> "use strict"; function showName(firstName, familyName, academicTitle, titleOfNobility) { "use strict"; // handle required parameters let ret = ""; if (!firstName || !familyName) { return "first name and family name must be specified"; } ret = firstName + ", " + familyName; // handle optional parameters if (academicTitle) { ret = ret + ", " + academicTitle; } if (titleOfNobility) { ret = ret + ", " + titleOfNobility; } return ret; } alert(showName("Mike", "Spencer", "Ph.D.")); alert(showName("Tom")); </syntaxhighlight> 必须单独检查可能未给出的每个参数。 ==== “其余”参数 ==== 如果可选参数的处理在结构上是相同的,则可以通过使用剩余运算符(rest operator)语法来简化代码 - 主要与循环结合使用。 该功能的语法由函数签名中的三个点组成 - 就像扩展语法(spread syntax)一样。 它是如何工作的?作为函数调用的一部分,JavaScript引擎将给定的可选参数组合到一个数组中。(请注意,调用脚本不使用数组。)该数组作为最后一个参数提供给被调函数。 <syntaxhighlight lang="JavaScript"> "use strict"; // the three dots (...) introduces the 'rest syntax' function showName(firstName, familyName, ...titles) { // handle required parameters let ret = ""; if (!firstName || !familyName) { return "first name and family name must be specified"; } ret = firstName + ", " + familyName; // handle optional parameters for (const title of titles) { ret = ret + ", " + title; } return ret; } alert(showName("Mike", "Spencer", "Ph.D.", "Duke")); alert(showName("Tom")); </syntaxhighlight> 调用的第三个和所有后续参数被收集到一个数组中,该数组可在函数中作为最后一个参数使用。 这允许使用循环并简化函数的源代码。 ==== 'arguments'关键字 ==== 与C系列其他编程语言一样,JavaScript在函数中提供了关键字<code>arguments</code>。 它是一个类似数组的对象,包含函数调用的所有给定参数。 您可以循环访问它或使用它的<code>length</code>属性。 它的功能与上面的“剩余语法”(rest syntax)相当。 主要区别在于 <code>arguments</code> 包含“所有”参数,而“其余语法”不一定影响所有参数。 <syntaxhighlight lang="JavaScript"> "use strict"; function showName(firstName, familyName, academicTitles, titlesOfNobility) { // handle ALL parameters with a single keyword for (const arg of arguments) { alert(arg); } } showName("Mike", "Spencer", "Ph.D.", "Duke"); </syntaxhighlight> == Return == 如果没有返回值,则<code>undefined</code>被返回. <syntaxhighlight lang="JavaScript"> "use strict"; function duplication(p) { if (typeof p === 'object') { return; // return value: 'undefined' } else if (typeof p === 'string') { return p + "! " + p + "!"; } // implicit return with 'undefined' } let arg = ["Go", 4, {a: 1}]; for (let i = 0; i < arg.length; i++) { const ret = duplication(arg[i]); alert(ret); } </syntaxhighlight> == 箭头函数(=>) == 箭头函数(arrow function)是上述传统函数语法的紧凑可选形式。 <syntaxhighlight lang="JavaScript"> "use strict"; // original conventional syntax function duplication(p) { return p + "! " + p + "!"; } // 1. remove keyword 'function' and function name // 2. introduce '=>' instead // 3. remove 'return'; the last value is automatically returned (p) => { p + "! " + p + "!" } // remove { }, if only one statement (p) => p + "! " + p + "!" // Remove parameter parentheses if it is only one parameter // ----------------------------- p => p + "! " + p + "!" // that's all! // ----------------------------- alert( (p => p + "! " + p + "!")("Go") ); </syntaxhighlight> 这是另一个使用数组的示例。<code>forEach</code>方法循环遍历数组。被放入箭头函数的单个参数<code>e</code>。 <syntaxhighlight lang="JavaScript"> "use strict"; const myArray = ['a', 'b', 'c']; myArray.forEach(e => alert("The element of the array is: " + e)); </syntaxhighlight> 其他编程语言在匿名函数或lambda表达式等术语下提供箭头函数的概念。 == 递归调用 == <syntaxhighlight lang="JavaScript"> "use strict"; function factorial(n) { if (n > 0) { const ret = n * factorial(n-1); return ret; } else { // n = 0; 0! is 1 return 1; } } const n = 4; alert(factorial(n)); </syntaxhighlight> ==擴展閱讀== *[http://javascript.infogami.com/Javascript_in_Ten_Minutes 十分鐘搞定JavaScript(Javascript in Ten Minutes)]:快速講解對像形的JavaScript。 (目前已經失連) * [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Functions MDN: Functions] * [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters MDN: Rest parameter] [[編程:JavaScript:目錄|<=目錄]] [[en:Programming:JavaScript:functions and Objects]] {{bookCat}} nxs9013f6tybv0dv91qwyo01i7y43me Template:Copyvio 10 13114 186772 185883 2026-08-17T04:51:27Z Pawsdt 68279 LintError:过时的HTML标签(<code><nowiki><big></nowiki></cpde>) 186772 wikitext text/x-wiki {{SAFESUBST:<noinclude />ifsubst|1={{error|{{tl|Copyvio}}不應替換引用。}}|2=<!-- 禁止搜索引擎索引 -->__NOINDEX__<templatestyles src="Copyvio/styles.css" /><includeonly>{{#if:{{{nocat|}}}||[[Category:怀疑侵犯版权页面]]}}<!-- 请在修改该分类前先提报bugzilla处理,因为该分类在条目评分扩展中有设置 --><div class="abusefilter-marking-copyvio"></div><!-- or use this div outside includeonly? --></includeonly> {{(!}} class="copyvio-box skin-invert" ! class="copyvio-title copyvio-titlebox"{{!}}页面正在进行版权验证 {{!}}- {{!}} style="border-bottom: 2px solid #003153; padding: 0.5em 1em"{{!}} <!-- ---------提示开始 --> {{HintH|titleStyle=width: auto;|title=<span {{#if:{{#if:{{{url|}}}||1}}|style="color: var(--color-error, red); width: 17em;"|style="color: crimson; width: 14em;"}}>{{#if:{{#if:{{{url|}}}||1}}|模板参数不全!请检查。|验证版權者注意!}}</span>|hintStyle=width: 500px;}} {{#if:{{#if:{{{url|}}}||1}} |<span style="color: var(--color-error,red);">请注意:在标记本{{NSPN}}侵权时,没有加入{{#if:{{{url|}}}||'''来源'''}}参数!</span>这不便于管理。请改用下列方式补上:<br /> '''{{Copyvio{{!}}url=来源url}}'''<br /> 亦可以用'''{{subst:Copyvio/auto{{!}}url=来源url}}'''自动生成有月份和签名的上一行调用。<br /> 对多于一个的侵权来源,可以采用这种形式: <pre>{{Copyvio |url= *http://url1 *http://url2 *http://url3 }}</pre>}} 請負責驗證本{{NSPN}}版權的維基人在標識侵權後,於在<span class=plainlinksneverexpand>[{{fullurl:{{FULLPAGENAME}}|action=history}} 本{{NSPN}}創建者]</span>的對話頁中加入:<br /> {{tls|CopyvioNotice|1{{=}}{{FULLPAGENAME}}}}{{HintF}}<!-- ---------提示结束 -->[[File:Copyright-problem.svg|right|50px|link=|class=skin-invert]] <div style="width: 80%; overflow: hidden; word-break: break-all;"> 此{{NSPN}}可能[[WB:侵犯版权|侵犯版权]],並已列在[[Wikibooks:删除请求]]中。'''<span class="plainlinks">{{#if:{{{OldRevision|}}}|[{{fullurl:{{FULLPAGENAME}}|oldid={{{OldRevision}}}}} 条目的文本]|{{#ifeq:{{NAMESPACE}}||[{{fullurl:{{FULLPAGENAME}}|action=history 原文本}}]|[{{fullurl:{{FULLPAGENAME}}|direction=prev&oldid={{REVISIONID}} 原文本}}]}}}}</span>'''疑似来自:<br> {{{url}}} </div> <span style="padding: 1px; ">请暂时不要修改本頁或重复创建相同内容的页面。{{#ifexist:Draft:{{PAGENAME}}{{#ifeq:{{NAMESPACE}}|Draft|/temp}}|'''已存在[[Draft:{{PAGENAME}}{{#ifeq:{{NAMESPACE}}|Draft|/temp|redirect=no}}|草稿页面]]。'''}}</span> {{!}}- {{!}} style="padding: 0.5em 1em;"{{!}} <span style="font-size:larger">'''如何解决'''</span> * 若您是本篇文本的版权持有者,请参考[[w:Wikipedia:捐赠版权材料/捐赠流程|授权流程]]。 * 若您不是版权持有者但愿意用'''自己的表達方式'''重新创作本{{NSPN}},请进入'''[{{fullurl:Draft:{{PAGENAME}}{{#ifeq:{{NAMESPACE}}|Draft|/temp}}|action=edit&preload=Template:Copyvio/preload}} 草稿页面]'''重写。 * 若您认为此为错误提报,请到[[Wikibooks:删除请求]]的相应段落留言说明。 '''提示''' * [[w:Wikipedia:版权常见问题解答|版权常见问题解答]] · [[w:維基百科:侵犯著作權|何為侵犯著作權]] * 七日之后未通过验证的页面将会被删除,若那时存在无版权问题的临时页面,则会用其[[WP:移动|替代]]本页面。 {{#if:{{{sign|<noinclude>~~</noinclude><noinclude>~~</noinclude>}}}|提出版权验证的[[Wikibooks:维基书人|维基人]]是:{{{sign|<noinclude>~~</noinclude><noinclude>~~</noinclude>}}} {{!)}}|{{!)}} 提出版权验证的[[Wikibooks:维基书人|维基人]]是:}}}}<noinclude> {{模板文档}}</noinclude> bkr5o9ht8dzy6aesa6aem5zetrhyjz3 Template:Sandbox 10 13303 186773 184999 2026-08-17T05:09:07Z Pawsdt 68279 LintError:过时的HTML标签(<code><nowiki><big></nowiki></cpde>) 186773 wikitext text/x-wiki <noinclude>{{About|置于沙盒顶端的提示-{zh-hant:資訊; zh-hans:信息;}-。'''本模板本身不是沙盒'''|用于测试的模板沙盒|模板:沙盒}}</noinclude> <noinclude> {{此頁面並非沙盒,請勿在此編輯。}} </noinclude>{{noEdit}} {{Ombox | type = notice | image = none | style = padding: 10px; margin: 20px auto; width: 100%; | textstyle = font-size: 10pt; | text = {{#ifeq:{{FULLPAGENAME}}|Wikibooks:沙盒|{{Shortcut|WB:TEMP|WB:TMP|WB:SB}}|}} <table><tr><td>[[File:Edit_In_Sandbox_Icon_-_Color.svg|75px|left|alt=|link=]]</td> <td> <span style="font-size:larger">欢迎来到'''[[w:Wikipedia:关于沙盒|维基教科书沙盒]]'''!</span></td> 本页是练习页面编辑技术的测试页面。请在此随意的进行格式的练习。请点击<span style="font-size:larger">'''[{{fullurl:{{{1|{{FULLPAGENAME}}}}}}}?action=edit 这里]'''</span>开始编辑{{#if:{{{1|}}}||,或者点击页面顶端的'''编辑本页''',}}还可以点击'''[{{fullurl:Category:沙盒}}?veaction=edit 这里]'''开始可视化编辑,当你完成编辑后,请单击'''保存本页'''按钮,在沙盒上编辑的内容将'''不会'''永久保存。 请不要在此存放你为维基教科书的页面或者其它有益的内容,在此编辑的内容正如在沙滩上所写的文字,退潮时就会消失。而'''沙盒'''中所写的内容,不久也会消去。但是请不要在沙盒里写有攻击性或者诽谤中伤他人的内容。 如果您有对维基教科书有任何问题,请不要放在这儿,而应该去[[Wikibooks:样式指南|样式指南]]看看,或到[[Wikibooks:互助客栈|互助客栈]]里询问。谢谢! <!--主沙盒--> <span class="plainlinks">试验其它沙盒:[[Wikibooks:沙盒|主沙盒]]<small>([{{fullurl:Wikipedia:沙盒|oldid=34672&autoclick=wpSave&autosummary={{urlencode:清理}}&action=edit}} <span title="清理">清理</span>])</small> <!--使用指南沙盒一--> [[w:使用指南 (编辑)/沙盒|使用指南沙盒一(維基百科)]]<small>([{{fullurl:w:使用指南 (编辑)/沙盒|oldid=8304538&autoclick=wpSave&autosummary={{urlencode:清理}}&action=edit}} <span title="清理">清理</span>])</small> <!--使用指南沙盒二--> [[w:使用指南 (格式)/沙盒|使用指南沙盒二(維基百科)]]<small>([{{fullurl:w:使用指南 (格式)/沙盒|oldid=8304542&autoclick=wpSave&autosummary={{urlencode:清理}}&action=edit}} <span title="清理">清理</span>])</small> <!--模版测试沙盒--> [[Template:沙盒|模版测试沙盒]]<small>([{{fullurl:Template:沙盒|oldid=8304547&autoclick=wpSave&autosummary={{urlencode:清理}}&action=edit}} <span title="清理">清理</span>])</small></span> 想要一个自己的沙盒,请建立一个[[w:用户页|用户页]]。你也可以到'''[[testwiki:|测试维基]]'''编辑实验。<br/></tr></table> }} 8756tsu76wvf2vzk6aig8jjmj59g9xa Template:Navbox/doc 10 22183 186770 84137 2026-08-17T03:10:01Z Pawsdt 68279 /* 參見 */ {{tl|SimpleNavbox}} 186770 wikitext text/x-wiki <includeonly>{{pp-template}}</includeonly><noinclude>{{template doc page viewed directly}}</noinclude> <!-- 在本行下編輯模板說明 --> <includeonly>{{lua|模块:Navbox}}</includeonly> {{mbox|text= 相对于英文维基百科版本的本地变动(供之后更新的管理员参考): * 行数增加至35([//zh.wikipedia.org/w/index.php?title=模块:Navbox&diff=26204346&oldid=26204299]) * 由于中文字符较宽,navbar和collapseButton均扩展到8em以避免文字换行([//zh.wikipedia.org/w/index.php?title=模块:Navbox&diff=next&oldid=26204346]及Common.css中的更改) * 文字大小被缩放至80%,生成的占位符必须设置同样的文字大小以保证8em的宽度一致([//zh.wikipedia.org/w/index.php?title=模块:Navbox&diff=next&oldid=26204390]) * collapseButton总有0.5em的margin-left,navbar也有,但不使用navbar时的占位符应该设置同样的margin-right来平衡([//zh.wikipedia.org/w/index.php?title=模块:Navbox&diff=next&oldid=26204405]) * 翻译分类名([//zh.wikipedia.org/w/index.php?title=模块:Navbox&diff=26260829&oldid=26204614]) }} {{Navbox suite}} 本模板允许通过提供一个或多个链接列表相对快速地建立一个[[Wikipedia:导航模板|导航模板]]。它配备了缺省样式,这些样式应能对付大多数导航模板。不建议改变缺省样式,尽管这是可以的。为了导航模板的标准化,也为了便于使用,强烈建议使用这个模板,或者它的「Navbox系列」姊妹模板中的某一个。 ==用法== 请移除置空不用的参数。 <pre>{{Navbox |state = autocollapse <!--autocollapse、uncollapsed、collapsed、plain、off--> |name ={{subst:PAGENAME}} |title = |image = |above = |abovestyle = |listclass = hlist |group1 = | list1 = |group2 = | list2 = …… |group20 = | list20 = |belowstyle = |below= }}</pre> ==参数列表== {{Navbox |name = Navbox/doc |state = uncollapsed |image = {{{image}}} |title = {{{title}}} |above = {{{above}}} |group1 = {{{group1}}} |list1 = {{{list1}}} |group2 = {{{group2}}} |list2 = {{{list2}}} |list3 = {{{list3}}}''不带{{{group3}}}'' |group4 = {{{group4}}} |list4 = {{{list4}}} |below = {{{below}}}<br/>参见下方的其他替代导航格式:[[#表格布局|''表格布局'']]<!-- See alternate navbox formats under:[[#Layout of table|''Layout of table'']] --> }} Navbox使用小写的参数名称,如上面框中所示。如果省略其他参数,必需的''name''和''title''会创建一个单行方框。 请注意“group1”(等等)是可选的,命名为“above/below”的部分也是可选的。 基本的和最常见的参数如下所示(参见下方查看完整的列表): <!-- The navbox uses lowercase parameter names, as shown in the box (''at right''). The mandatory ''name'' and ''title'' will create a one-line box if other parameters are omitted. <br/> Notice "group1" (etc.) is optional, as are sections named "above/below". {{brClear}} The basic and most common parameters are as follows (see below for the full list): --> :<code>name - </code>模板的名称(“Template:”后面的部分,注意不是模板的标题)。<!-- the name of the template. --> :<code>title - </code>标题栏的文字,像<nowiki>[[化学分支]]</nowiki>。<!-- text in the title bar, such as: <nowiki>[[Widget stuff]]</nowiki>. --> :<code>state - autocollapse、uncollapsed、collapsed</code>:方框的折叠状态,其中“autocollapse”会自动隐藏被堆叠的多个导航框。<!-- : the status of box expansion, where "autocollapse" hides stacked navboxes automatically. --> :<code>titlestyle - </code>一个用于标题栏的CSS样式,像:<!-- a CSS style for the title-bar, such as: --><code>background:gray;</code> :<code>groupstyle - </code>一个用于分组单元格的CSS样式,像:<!-- a CSS style for the group-cells, such as: --><code>background:#eee;</code> :<code>image - </code>一个可选的置于右侧的图片(以完整的image标签的形式编码:<nowiki>[[File:XX.jpg|90px]]</nowiki>)。<!-- an optional right-side image (coded as the whole image tag: ). --> :<code>imageleft - </code>一个可选的置于左侧的图片(编码方式与“image”参数相同)。<!-- an optional left-side image (code the same was as the "image" parameter). --> :<code>above - </code>在group/list区段之上显示的文字(可能是一栏综合的维基链接)。<!-- text to appear above the group/lst section (could be a list of overall wikilinks). --> :<code>group<sub>n</sub> - </code>左侧的文字,在list-n之前(如果group-n被省略,list-n从方框的左侧开始)。<!-- the left-side text before list-n (if group-n omitted, list-n starts at left of box). --> :<code>list<sub>n</sub> - </code>列出维基链接的文字,通常以圆点符号模板分隔开来,像:<!-- text listing wikilinks, often separated by middot templates, such as: -->[<nowiki/>[A]]<code>{<nowiki/>{·}}</code> [<nowiki/>[B]] :<code>below - </code>在group/list区段之下显示的可选文字。<!-- optional text to appear below the group/list section. --> 进一步的细节,以及复杂的约束,在下方[[#参数描述|参数描述]]章节作了解释。参见其他的一些替代导航格式:[[#表格布局|''表格布局'']]。<!-- Further details, and complex restrictions, are explained below under section ''[[#Parameter descriptions|Parameter descriptions]]''. See some alternate navbox formats under: [[#Layout of table|''Layout of table'']]. --> == 参数描述 == 下面是用于{{t1|Navbox}}的参数的一个完整清单。在大多数情况下,只要有参数<code>name</code>、<code>title</code>和<code>list1</code>就可以了,尽管[[#子导航框|子导航框]]甚至不需要设置那些参数。 {{t1|Navbox}}与它的姊妹模板{{t1|Navbox with columns}}、{{t1|Navbox with collapsible groups}}共-{}-用很多常用的参数名称,以提高一致性与易用性。带一个<sup><span style="font-weight:bold;">†</span></sup>标记的参数适用于所有这三个主模板。 <!-- The following is a complete list of parameters for using {{t1|Navbox}}. In most cases, the only required parameters are <code>name</code>, <code>title</code>, and <code>list1</code>, though [[Template:Navbox/doc#Child_navboxes|child navboxes]] do not even require those to be set. {{t1|Navbox}} shares numerous common parameter names as its sister templates {{t1|Navbox with columns}} and {{t1|Navbox with collapsible groups}} for consistency and ease of use. Parameters marked with a cross<sup><span style="font-weight:bold;">†</span></sup> are common to all three master templates. --> === 设置参数 === :; ''name''<sup>†</sup> ::模板的名称。为了在所有使用了所生成模板的页面上,“檢 · 论 · 编”链接都能正确地工作,就需要设置这个参数。你可以输入<code><nowiki>{{subst:PAGENAME}}</nowiki></code>作为这个参数的值,这也是个快捷的方法。此参数是必需的。<!-- 仅当<code>title</code>被指定,且<code>border</code>参数未被设置时,此name参数才是必需的。 --> :; ''state''<sup>†</sup> <span style="font-weight:normal;">[<code>autocollapse、uncollapsed、collapsed、plain、off</code>]</span> :*缺省为<code>autocollapse</code>。如果在使用了其他可折叠表格的同一个页面上有两个或更多表格,那么该页面上的带<code>autocollapse</code>的导航框一开始就会折叠起来。否则,该导航框会被展开。要了解技术上的实现,请参见[[MediaWiki:Common.js]]。 :*如果设置为<code>collapsed</code>,该导航框总会在开始时以折叠起来的状态展现。 :*如果设置为<code>plain</code>,该导航框总会在被展开时不带右侧的“隐藏”链接,并且标题会保持居中(通过使用补白来偏移<small>查 • 论 • 编 • 历</small>链接)。 :*如果设置为<code>off</code>,该导航框总会在被展开时不带右侧的“隐藏”链接,但是没有补白会被用来保持标题居中。这只是为了高级用法;“plain”选项应能满足大多数需要将“显示”/“隐藏”按钮隐藏起来的应用。 :*如果设置为除<code>autocollapse</code>、<code>collapsed</code>、<code>plain</code>或<code>off</code>之外的其他值(像“uncollapsed”),该导航框总会在开始时以展开的状态出现,但是带有“隐藏”按钮。 :若要在独处(未被包含)时显示框体,而在一个条目中时自动隐藏内容,可以将“uncollapsed”置于<noinclude>标签之内: :* <code>state = </code><nowiki><noinclude>uncollapsed</noinclude></nowiki> :*如此设置会强制框体在单独出现时(甚至是后面有其他导航框时)展开,显示“隐藏”按钮,而当被堆叠在一个条目中时自动折叠框体。 :很多时候,对于一个导航框,编辑者会想要一个缺省的初始状态,并且在条目中它可以被覆写。要做到这一点,这里有个窍门: :在你的居间模板里,创建一个参数也命名为“state”作为一个传递,像这样: :*<tt><nowiki>| state = {{{state<includeonly>|你想要的初始状态</includeonly>}}}</nowiki></tt> :*The <nowiki><includeonly>|</nowiki>会使得当查看模板页面本身时,模板会被展开。 ::*示例:<nowiki>{{</nowiki>[[Template:土星的卫星|土星的卫星]]<nowiki>}}</nowiki>带autocollapse作为其缺省的初始状态。条目[[土卫三十五]]嵌入包含了它,并且只有一个导航框架。因此该页面的“土星的卫星”导航框显示了出来。条目[[土卫一]]有两个导航框。因此该页面的“土星的卫星”导航框折叠了起来。另外,也可以在条目中使用带state参数的引用形式(如<nowiki>{{土星的卫星|state=collapsed}}</nowiki>)来覆写其折叠状态。 ::*示例:<nowiki>{{</nowiki>[[Template:阿拉伯语言|阿拉伯语言]]<nowiki>}}</nowiki>带expanded作为其缺省的初始状态。所有嵌入包含它的条目缺省情况下会显示其内容,除非有一个假定的条目在嵌入包含它时指定了state = collapsed。 :; ''navbar''<sup>†</sup> ::缺省为<code>Navbar</code>。如果设置为<code>plain</code>,在标题栏左侧的<small>查 • 论 • 编</small>链接不会显示出来,而且补白会被自动应用以保持标题居中。设置为<code>off</code>可以移除<small>查 • 论 • 编</small>链接,但是不会应用补白(这只是为了高级用法;“plain”选项应能满足大多数不想要导航栏的应用。)强烈建议使用者不要隐藏导航栏,为的是使用户编辑该模板更加容易,并且可以贯穿各个页面都有一个标准的风格。 <!-- 中文模板目前不支持此参数。2008-10-23 :; ''border''<sup>†</sup> ::''关于将导航框用在另一个导航框内部,欲了解示例及更完整的描述,请参见下面的章节。''如果设置为<code>child</code>或<code>subgroup</code>,那么该导航框能够被用作一个无边框的子导航框。其边框被隐藏并且在表格的边上没有补白,因此它能很好地放进它的父导航框的list区域。如果设置为<code>none</code>,那么 :: ''See section below on using navboxes within one another for examples and a more complete description.'' If set to <code>child</code> or <code>subgroup</code>, then the navbox can be used as a borderless child that fits snuggly in another navbox. The border is hidden and there is no padding on the sides of the table, so it fits into the ''list'' area of its parent navbox. If set to <code>none</code>, then the border is hidden and padding is removed, and the navbox may be used as a child of another container (do not use the <code>none</code> option inside of another navbox; similarly, only use the <code>child</code>/<code>subgroup</code> option inside of another navbox). If set to anything else (default), then a regular navbox is displayed with a 1px border. An alternate way to specify the border to be a subgroup style is like this (i.e. use the first unnamed parameter instead of the named ''border'' parameter): :::<code><nowiki>{{Navbox|child</nowiki></code> ::::<code>... :::<code><nowiki>}}</nowiki></code> --> === 单元格 === :; ''title''<sup>†</sup> ::显示在表格顶端一行居中位置的文字。它通常是该模板的主题,也就是主体内容的一个简要描述。这应该是单独的一行,但是如果需要第二行,请使用<code><nowiki>{{brClear}}</nowiki></code>来保证正确的居中。本参数从技术上来说不是必需的,但是使用{{t1|Navbox}}而不带标题是相当没有意义的。 :; ''group<sub>n</sub>''<sup>†</sup> ::(即''group1''、''group2''等等)如果被指定,文字会显示在位于''list<sub>n</sub>''左侧的抬头单元格中。如果被省略,''list<sub>n</sub>''占用表格的全部宽度。 :; ''list<sub>n</sub>''<sup>†</sup> ::(即''list1''、''list2''等等)该模板的主体,通常为一栏链接。格式为内联;然而,如果整个列表被装入<code><nowiki><div> </div></nowiki></code>之内,文字能够被输入到不同的行中。最少需要一个''list''参数;每个附加的''list''被显示在一个单独的表格行中。每个''list<sub>n</sub>''可能在其前面有一个相对应的''group<sub>n</sub>''参数,如果提供了的话(参见下方)。 :; ''image''<sup>†</sup> ::一张图片,会显示在标题(title)之下、主体(group/list)之右侧的一个单元格中。为使图片能正确地显示,必须指定''list1''参数。''image''参数接受标准的维基代码来显示图片,即: ::: <code><nowiki>image = [[File:Example.jpg|100px]]</nowiki></code> :; ''imageleft''<sup>†</sup> ::一张图片,会显示在标题(title)之下、主体(list)之左侧的一个单元格中。为使图片能正确地显示,必须指定''list1''参数,而且不能指定分组(group)。''imageleft''参数接受标准的维基代码来显示图片,即: ::: <code><nowiki>imageleft = [[File:Example.jpg|100px]]</nowiki></code> :; ''above''<sup>†</sup> ::一个全宽度单元格,显示在标题栏与第一个group/list之间,也就是位于该模板的主体(group、list和image)之上。在一个不带图片的模板中,''above''与不带''group1''参数的''list1''参数以同样的方式运作。 :; ''below''<sup>†</sup> ::一个全宽度单元格,显示在该模板主体(group、list和image)的下方。在一个不带图片的模板中,''below''与该模板最后面的不带''group<sub>n</sub>''参数的''list<sub>n</sub>''参数以同样的方式运作。作为一个使用了''below''参数的示例,请参见{{tl|非洲}}。 === 样式参数 === 一般不建议更改样式,以保持维基百科中模板和网页的一致性。然而,修改样式的选项还是有的。 :; ''style''<sup>†</sup> ::指定应用到模板主体的CSS样式。''bodystyle''参数也有下面举例的同样效果,并能被用来代替这个''style''参数。此选项应谨慎使用,因为它可以导致视觉上的不一致。举例: ::: <code>style = background:#''nnnnnn'';</code> ::: <code>style = width:''N'' [em/%/px or width:auto];</code> ::: <code>style = float:[''left/right/none''];</code> ::: <code>style = clear:[''right/left/both/none''];</code> <!-- 注释:中文模板目前尚不支持basestyle参数。2008-10-27 :; ''basestyle''<sup>†</sup> ::CSS样式,会同时应用到''title''、''above''、''below''和''group''单元格。该样式不会应用到''list''单元格。这就比较方便了,使得编辑者很容易改变导航框的基本颜色而无需重复去为该导航框的不同部分指定样式。举例: --><!-- :: CSS styles to apply to the ''title'', ''above'', ''below'', and ''group'' cells all at once. The style are not applied to ''list'' cells. This is convenient for easily changing the basic color of the navbox without having to repeat the style specifications for the different parts of the navbox. Examples: ::: <code>basestyle = background:lightskyblue;</code> --> :; ''titlestyle''<sup>†</sup> ::应用到''title''的CSS样式,最常见的有导航栏的背景颜色: ::: <code><nowiki>titlestyle = background:</nowiki>''#nnnnnn'';</code> ::: <code><nowiki>titlestyle = background:</nowiki>''name'';</code> :; ''groupstyle''<sup>†</sup> ::应用到''groupN''单元格的CSS样式。该选项覆写应用于整个表格的任何样式。举例: ::: <code>groupstyle = background:#''nnnnnn'';</code> ::: <code>groupstyle = text-align:[''left/center/right''];</code> ::: <code>groupstyle = vertical-align:[''top/middle/bottom''];</code> <!-- 中文模板目前不支持以下参数。2008-10-27 :; ''group<sub>n</sub>style''<sup>†</sup> --> :; ''liststyle''<sup>†</sup> ::应用到所有list的CSS样式。若指定了下面的''oddstyle''和''evenstyle''参数,则它们的优先级高于本参数。 <!-- 中文模板目前不支持以下参数。2008-10-27 :; ''list<sub>n</sub>style''<sup>†</sup> :; ''listpadding''<sup>†</sup> --> :; ''oddstyle'' :; ''evenstyle'' ::应用到奇数/偶数编号的列表。会推翻由''liststyle''定义的样式。缺省的表现是分别添加条纹状的颜色(白色和灰色)到奇数/偶数行,以提高可读性。除了在非常特别的情况下,这些设置不应更改。 <!-- ::Applies to odd/even list numbers. Overrules styles defined by ''liststyle''. The default behavior is to add striped colors (white and gray) to odd/even rows, respectively, in order to improve readability. These should not be changed except in extraordinary circumstances. --> <!-- 中文模板目前不支持以下参数。2008-10-29 :; ''evenodd'' <span style="font-weight:normal;"><code>[swap, even, odd, off]</code></span> --> :; ''abovestyle''<sup>†</sup> :; ''belowstyle''<sup>†</sup> ::CSS样式,应用到顶端单元格(通过''above''参数指定)和底端单元格(通过''below''参数指定)。典型地被用来设置背景颜色或文本对齐方式: ::: <code>abovestyle = background:#''nnnnnn'';</code> ::: <code>abovestyle = text-align:[''left/center/right''];</code> <!-- 中文模板目前不支持以下参数。2008-10-29 :; ''imagestyle''<sup>†</sup> :; ''imageleftstyle''<sup>†</sup> --> ===== 缺省样式 ===== 这里列出的样式设置是使用导航框的编辑者最经常更改的那些设置。其他更加复杂的样式设置被排除在这个列表之外,以保持它简单。大多数样式是在[[MediaWiki:Common.css]]中设置。 :<code>bodystyle = background:#fdfdfd; width:100%; vertical-align:middle;</code> :<code>titlestyle = background:#ccccff; padding-left:1em; padding-right:1em; text-align:center;</code> :<code>abovestyle = background:#ddddff; padding-left:1em; padding-right:1em; text-align:center;</code> :<code>belowstyle = background:#ddddff; padding-left:1em; padding-right:1em; text-align:center;</code> :<code>groupstyle = background:#ddddff; padding-left:1em; padding-right:1em; text-align:right;</code> :<code>liststyle = background:transparent; text-align:left/center;</code> :<code>oddstyle = background:transparent;</code> :<code>evenstyle = background:#f7f7f7;</code> 由于''liststyle''和''oddstyle''是透明的,奇数列表有''bodystyle''的颜色,其缺省值是#fdfdfd(白色带有少许灰色)。一个list有<code>text-align:left;</code>设定,如果它有一个group的话;否则,它有<code>text-align:center;</code>设定。由于只有''bodystyle''有一个垂直对齐(vertical-align)属性,所 有其他样式继承其<code>vertical-align:middle;</code>设定。 <!-- 中文模板目前不支持以下参数。2008-10-31 === 高级参数 === :; ''titlegroup'' :; ''titlegroupstyle'' :; ''innerstyle'' --> == 表格的布局 == 由{{tl|Navbox}}'''不带'''''image''、''above''和''below''参数生成的表格(添加了灰色的列表背景色仅仅是为了演示): <!-- Table generated by {{tl|Navbox}} '''without''' ''image'', ''above'' and ''below'' parameters (gray list background color added for illustration only): --> {{Navbox |name = Navbox/doc |state = uncollapsed |liststyle = background:silver; |title = {{{title}}} |group1 = {{{group1}}} |list1 = {{{list1}}} |group2 = {{{group2}}} |list2 = {{{list2}}} |list3 = {{{list3}}} ''不带 {{{group3}}}'' |group4 = {{{group4}}} |list4 = {{{list4}}} }} 由{{tl|Navbox}}'''带有'''''image''、''above''和''below''参数生成的表格(添加了灰色的列表背景色仅仅是为了演示): <!-- Table generated by {{tl|Navbox}} '''with''' ''image'', ''above'' and ''below'' parameters (gray list background color added for illustration only): --> {{Navbox |name = Navbox/doc |state = uncollapsed |liststyle = background:silver; |image = {{{image}}} |title = {{{title}}} |above = {{{above}}} |group1 = {{{group1}}} |list1 = {{{list1}}} |group2 = {{{group2}}} |list2 = {{{list2}}} |list3 = {{{list3}}} ''不带 {{{group3}}}'' |group4 = {{{group4}}} |list4 = {{{list4}}} |below = {{{below}}} }} 由{{tl|Navbox}}'''带有'''''image''、''imageleft''、''lists'',且'''不带'''''groups''、''above''、''below''生成的表格(添加了灰色的列表背景色仅仅是为了演示): <!-- Table generated by {{tl|Navbox}} '''with''' ''image'', ''imageleft'', ''lists'', and '''without''' ''groups'', ''above'', ''below'' (gray list background color added for illustration only): --> {{Navbox |name = Navbox/doc |state = uncollapsed |liststyle = background:silver; |image = {{{image}}} |imageleft = {{{imageleft}}} |title = {{{title}}} |list1 = {{{list1}}} |list2 = {{{list2}}} |list3 = {{{list3}}} |list4 = {{{list4}}} }} == 示例 == === 不带图片 === <pre style="overflow:scroll;"> {{Navbox |listclass=hlist |name = Navbox/doc |title = [[多媒体超级走廊]](马来西亚){{brClear}}''不带图片'' |group1 = 中心 | list1 = [[赛柏再也]] |group2 = 区域 | list2 = [[巴生谷]] |group3 = 主要地标 | list3 = * [[双子塔]] * [[吉隆坡电讯高塔]] * [[吉隆坡中央车站]] * [[马来西亚科技园]] * [[布城]] * [[赛柏再也]] * [[吉隆坡国际机场]] |group4 = 基础设施 | list4 = * [[快速铁路]] * [[吉隆坡-布城高速公路]] * [[全机场管理系统]] |group5 = 首要应用 | list5 = * [[电子政务]] * [[大马卡]] }} </pre> {{Navbox |listclass=hlist |name = Navbox/doc |state = uncollapsed |title = [[多媒体超级走廊]](马来西亚){{brClear}}''不带图片'' |group1 = 中心 | list1 = * [[赛柏再也]] |group2 = 区域 | list2 = * [[巴生谷]] |group3 = 主要地标 | list3 = * [[双子塔]] * [[吉隆坡电讯高塔]] * [[吉隆坡中央车站]] * [[马来西亚科技园]] * [[布城]] * [[赛柏再也]] * [[吉隆坡国际机场]] |group4 = 基础设施 | list4 = * [[快速铁路]] * [[吉隆坡-布城高速公路]] * [[全机场管理系统]] |group5 = 首要应用 | list5 = * [[电子政务]] * [[大马卡]] }} === 带图片,不带分组 === <pre style="overflow:scroll;"> {{Navbox |listclass=hlist |name = Navbox/doc |title = [[多媒体超级走廊]](马来西亚) |image = [[File:Flag of Malaysia.svg|80px]] |list1 = * [[双子塔]] * [[吉隆坡电讯高塔]] * [[吉隆坡中央车站]] * [[马来西亚科技园]] * [[布城]] * [[赛柏再也]] * [[吉隆坡国际机场]] }} </pre> {{Navbox |listclass=hlist |name = Navbox/doc |state = uncollapsed |title = [[多媒体超级走廊]](马来西亚) |image = [[File:Flag of Malaysia.svg|80px]] |list1 = * [[双子塔]] * [[吉隆坡电讯高塔]] * [[吉隆坡中央车站]] * [[马来西亚科技园]] * [[布城]] * [[赛柏再也]] * [[吉隆坡国际机场]] }} === 带两张图片,不带分组,多重列表 === <pre style="overflow:scroll;"> {{Navbox |listclass=hlist |name = Navbox/doc |title = [[多媒体超级走廊]](马来西亚) |image = [[File:Flag of Malaysia.svg|80px]] |imageleft = [[File:Flag of Malaysia.svg|80px]] |list1 = * [[双子塔]] * [[吉隆坡电讯高塔]] * [[吉隆坡中央车站]] |list2 = * [[快速铁路]] * [[吉隆坡-布城高速公路]] * [[全机场管理系统]] |list3 = * [[电子政务]] * [[大马卡]] |list4 = * [[巴生谷]] }} </pre> {{Navbox |listclass=hlist |name = Navbox/doc |state = uncollapsed |title = [[多媒体超级走廊]](马来西亚) |image = [[File:Flag of Malaysia.svg|80px]] |imageleft = [[File:Flag of Malaysia.svg|80px]] |list1 = * [[双子塔]] * [[吉隆坡电讯高塔]] * [[吉隆坡中央车站]] |list2 = * [[快速铁路]] * [[吉隆坡-布城高速公路]] * [[全机场管理系统]] |list3 = * [[电子政务]] * [[大马卡]] |list4 = * [[巴生谷]] }} === 带有图片、分组、上方注释、下方注释 === <pre style="overflow:scroll;"> {{Navbox |listclass=hlist |name = Navbox/doc |title = [[多媒体超级走廊]](马来西亚) |image = [[File:Flag of Malaysia.svg|80px]] |above = 上方文字放在这里 |group1 = 中心 |list1 = * [[赛柏再也]] |group2 = Area |list2 = * [[巴生谷]] |group3 = 主要地标 |list3 = * [[双子塔]] * [[吉隆坡电讯高塔]] * [[吉隆坡中央车站]] * [[马来西亚科技园]] * [[布城]] * [[赛柏再也]] * [[吉隆坡国际机场]] |group4 = 基础设施 |list4 = * [[快速铁路]] * [[吉隆坡-布城高速公路]] * [[全机场管理系统]] |group5 = 首要应用 |list5 = * [[电子政务]] * [[大马卡]] |below = 网站:[http://www.msc.com.my/ www.msc.com.my] }} </pre> {{Navbox |listclass=hlist |name = Navbox/doc |state = uncollapsed |title = [[多媒体超级走廊]](马来西亚) |image = [[File:Flag of Malaysia.svg|80px]] |above = 上方文字放在这里 |group1 = 中心 |list1 = * [[赛柏再也]] |group2 = 区域 |list2 = * [[巴生谷]] |group3 = 主要地标 |list3 = * [[双子塔]] * [[吉隆坡电讯高塔]] * [[吉隆坡中央车站]] * [[马来西亚科技园]] * [[布城]] * [[赛柏再也]] * [[吉隆坡国际机场]] |group4 = 基础设施 |list4 = * [[快速铁路]] * [[吉隆坡-布城高速公路]] * [[全机场管理系统]] |group5 = 首要应用 |list5 = * [[电子政务]] * [[大马卡]] |below = 网站:[http://www.msc.com.my/ www.msc.com.my] }} <!-- === 典型示例 === {{tlu|Template:H:f Help}}模板中使用了本模板{{tlu|Template:Navbox}},效果如下: {{H:f Help}} --> <!-- 中文模板目前不支持border参数,以下章节相应保留未译。2008-11-2 == 子导航框 == --> == 子导航框 == <!-- {{Selfref|For additional examples, see the [[Template:Navbox/testcases|Navbox testcases page]].}} --> 要在一个边框中放置多个导航框,可以使用''border''参数,或通过将第一个参数指定为“child”来实现。基本用法如下(为第一个组增加了一个子组): <pre style="overflow: auto;"> {{Navbox | name = {{subst:PAGENAME}} | title = Title | group1 = [optional] | list1 = {{Navbox|child ...child navbox parameters... }} ... }} </pre> === 子分组示例 === {{main|Template:Navbox subgroup}} 下面的示例展示了子分组的用法。{{tl|Navbox subgroup}}是推荐的用法,但通过在{{tl|Navbox}}加入<code>border = child</code>或将第一个参数(无名)设为<code>child</code>也可以达到同样的效果。“evenodd”参数用来调整某些子分组中条纹状颜色带的分布,以确保颜色带的排列正确。如果想去除所有的条纹颜色带,可以在每个Navbox中设置<code>liststyle = background:transparent;</code>。 {{Navbox | name = Navbox/doc | image = [[File:Flag of the United States.svg|100px|link=|alt=]] | state = uncollapsed | title = 子次级分组示例 | above = 上方文字 | below = 下方文字 | group1 = 分组1 | list1 = 列表1 | group2 = 分组2 | list2 = {{Navbox|child | evenodd = swap | group1 = 分组2.1 | list1 = 列表1 | group2 = 分组2.2 | list2 = 列表2 | group3 = 分组2.3 | list3 = 列表3 }} | group3 = 分组3 | list3 = 列表3 | group4 = 分组4 | list4 = {{Navbox|child | evenodd = swap | group1 = 分组4.1 | list1 = 列表1 | group2 = 分组4.2 | list2 = 列表2 | group3 = 分组4.3 | list3 = 列表3 }} }} === 一个导航模板下包含其他导航模板 === {{main|Template:Navbox with collapsible groups}} 下面的示例中,常规Navbox被用作容器,其list1、list2和list3参数各包含另外的Navbox(设置了<code>1 = child</code>)。“-{zh-hans:查;zh-hant:檢;}-·论·编”标题链接各通过<code>navbar = plain</code>或直接不填写“name”参数隐藏。(与常规Navbox不同,子Navbox不要求填写“name”参数。) {{Navbox | name = Navbox/doc | title = [[File:Blason France moderne.svg|x17px|link=|alt=]] [[File:Flag of France.svg|x17px|link=|alt=]] [[法蘭西殖民帝國]] | state = uncollapsed | list1 = {{Navbox|child | navbar = plain | title = [[非洲]]及[[印度洋]]的[[法蘭西殖民帝國|前法国殖民地]] | listclass = hlist | group1 = [[马格里布]] | list1 = * [[法属阿尔及利亚|阿尔及利亚]] * [[法属摩洛哥|摩洛哥]] <small>([[阿爾金]])</small> * [[突尼西亞歷史|突尼西亞]] | group2 = [[法屬西非]] | list2 = * [[科特迪瓦历史|科特迪瓦]] * [[法属达荷美|达荷美]] * [[法属苏丹|苏丹]] * [[法属几内亚|几内亚]] * [[毛里塔尼亚历史|毛里塔尼亚]] * [[尼日尔历史|尼日尔]] * [[塞内加尔历史|塞内加尔]] * [[法属上伏塔|上伏塔]] * [[法屬多哥蘭]] * [[詹姆斯岛 (冈比亚)|詹姆斯岛]] | group3 = [[法屬赤道非洲]] | list3 = * [[法属乍得|乍得]] * [[加蓬历史|加蓬]] * [[刚果共和国历史|法术刚刚果]] * [[乌班吉沙里]] | group4 = [[葛摩]] | list4 = * [[昂儒昂岛]] * [[大科摩罗岛]] * [[莫埃利島]] * [[吉布提历史|法属索马里兰]] * [[马达加斯加历史#法国殖民时期|马达加斯加]] * [[毛里裘斯]] * [[塞舌尔]] }} | list2 = {{Navbox|child | navbar = plain | title = [[美洲]]的[[法蘭西殖民帝國|前法国殖民地]] | listclass = hlist | list1 = * [[新法兰西]]{{spaces|2}}<small>([[阿卡迪亞 (加拿大)|阿卡迪亞]],[[法属路易斯安那|路易斯安那]],[[法属加拿大|加拿大]],[[纽芬兰岛]])1655–1763 </small> | list2 = * [[伊尼尼]] * [[贝尔维塞]] * [[法属圣多明戈]] * <small>[[海地]]</small> * [[多巴哥岛]] * [[维尔京群岛]] * [[France Antarctique]] * [[France Équinoxiale]] | below = [[法国西印度公司]] }} | list3 = {{Navbox|child | navbar = plain | title = [[亚洲]]和[[大洋洲]]的[[法蘭西殖民帝國|前法国殖民地]] | listclass = hlist | group1 = [[法属印度]] | list1 = * [[金德訥格爾]] * [[乌木海岸]] * [[马德拉斯]] * [[马埃]] * [[本地治里]] * [[开利开尔]] * [[亚南]] | group2 = [[法屬印度支那]] | list2 = * [[柬埔寨历史|柬埔寨]] * [[老挝历史|老挝]] * [[法属印度支那|越南]] <small>([[安南保護國|安南]],[[南圻]],[[東京 (越南)|東京]])</small> | group3 = 亚洲其他地区 | list3 = * [[Alawite State|Alaouites]] * [[Republic of Hatay|Alexandretta-Hatay]] * [[斯里兰卡|锡兰]] * [[广州湾]] | group4 = [[大洋洲]] | list4 = * [[新赫布里底群島共管地]] ** [[瓦努阿图]] | below = [[法国东印度公司]] }} }} == 与其他导航框模板的关系 == 此导航框模板被特别设计使得能与另外两个姊妹模板协同工作:{{t1|Navbox with columns}}和{{t1|Navbox with collapsible groups}}。所有这三个模板共用常用的参数,以提高一致性与易用性(此类参数在上面的完整参数列表中用<sup>'''†'''</sup>作了标记)。最重要的是,所有这三个模板能互相被用作另一个的子模板(通过使用<code>border = child</code>参数,或将第一个参数(无名)指定为<code>child</code>。例如,使用<code><nowiki>{{Navbox|child ...}}</nowiki></code>、<code><nowiki>{{Navbox with columns|child ...}}</nowiki></code>或<code><nowiki>{{Navbox with collapsible groups|child ...}}</nowiki></code>)。 == 技术细节 == * 此模板为其大部分外观使用CSS类,因此它完全可以更换皮肤。 <!-- * 在内部此元模板使用了HTML标记代替 --> <!-- *Internally this meta template uses HTML markup instead of wiki markup for the table code. That is the usual way we make meta templates since wiki markup has several drawbacks. For instance it makes it harder to use [[m:Help:ParserFunctions|parser functions]] and special characters in parameters. --> * 欲了解更多技术细节请参见其[[Template_talk:Navbox|讨论页]]、[[MediaWiki:common.css]]中的CSS类以及[[MediaWiki:common.js]]中用来隐藏框体的可折叠表格。 === 运作详情 === <!-- 译后试了一下,中文模板无需像英文模板那样额外设置liststyle =。2008-11-04 * 在分组(groups)与列表(lists)之间的2px宽的边框被绘出,是使用列表单元格的左边框(border-left)属性。因此,如果你想改变模板的背景颜色(例如<code>bodystyle = background:purple;</code>),那么你就需要使这个左边框颜色(border-left-color)与该背景色相适配(即<code>liststyle = border-left-color:purple;</code>)。如果你想有一个边框围绕在每一个列表单元格,那么在分组与列表之间的这个2px的边框会消失;你要拿出自己的解决方案。 *The 2px wide border between groups and lists is drawn using the border-left property of the list cell. Thus, if you wish to change the background color of the template (for example <code>bodystyle = background:purple;</code>), then you'll need to make the border-left-color match the background color (i.e. <code>liststyle = border-left-color:purple;</code>). If you wish to have a border around each list cell, then the 2px border between the list cells and group cells will disappear; you'll have to come up with your own solution. --> * 列表单元格宽度初始被设置为100%。因此,如果你想手动设置分组单元格的宽度,你就需要同时指定liststyle使之有width:auto。如果你想设置分组宽度并使用图片,这取决于你已弄明白在groupstyle、liststyle、imagestyle和imageleftstyle参数中的CSS,以使所有部件都工作正常。以下两行是设置分组宽度的示例: ::<code>groupstyle = width:10em;</code> ::<code>liststyle = width:auto;</code> *相邻的导航框在它们之间仅有一个1px的边框(除了在IE6中,因其不支持必需的CSS)。如果你设置了<code>style/bodystyle</code>的顶端外边距(top margin)或底顶端外边距(bottom margin),那么此特性就不运作了。 *外层导航框表格的缺省的左外边距(margin-left)和右外边距(margin-right)被设置为“auto;”。如果你想使用导航框作为一个浮动对象(float),你需要手动设置左外边距和右外边距的值,因为自动外边距(auto margins)会阻止浮动(float)选项。例如,添加下列代码来使用导航框作为一个浮动对象: ::<code>style = width:22em;float:right;margin-left:1em;margin-right:0em;</code> == 參見 == * {{tl|SimpleNavbox}} - 另一种形式 * {{tl|Navbox subgroup}} – 允許在導航框內分組。 * {{tl|Navbox with columns}} – 允許以欄取代組別/列表。 * {{tl|Navbox with collapsible groups}} – 另一種變體。 * {{tl|Nowrap begin}} – 於列表項目中間插入圓點、直管線或破折號的格式模板。 * {{tl|Nobold}} – 當預設文字樣式設定為粗體時,可用來顯示無粗體文字的模板。 * {{tn|·}}及{{tn|•}} – 分隔列表項目的圓點。 {{Navigational templates}} <includeonly> [[Category:導航模板|{{PAGENAME}}]] [[Category:摺疊模板|{{PAGENAME}}]] [[Category:格式模板|{{PAGENAME}}]] </includeonly> h0rtq6r8osmfhdfx72bbc8kkpq0vtf3 Template:学生用教科书 10 26025 186768 183407 2026-08-17T03:00:57Z Pawsdt 68279 加上科学 186768 wikitext text/x-wiki {{Navbox |state = autocollapse |name  =学生用教科书 |title =学生用教科书 |listclass = hlist |group1 = 小学 | list1 = '''大陆课程:'''[[小学语文|语文]] · [[小学数学|数学]] · [[小学英语(一年级起)|英语(一年级起)]] · [[小学英语(三年级起)|英语(三年级起)]] · [[小学道德与法治|道德与法治]] · [[小学音乐|音乐]] · [[小学美术|美术]] · [[小学体育与健康|体育与健康]] · [[小学科学|科学]] · [[小学信息技术|信息技术]]<br/> '''台湾课程:'''[[小学语文|语文]] · [[小学数学|数学]] · [[小学英语|英语]] · [[小学生活|生活]] · [[小学音乐|音乐]] · [[小学美术|美术]] · [[小学体育|体育]] · [[小学社会|社会]] · [[小学健康|健康]]<br /> |group2 = 初中 | list2 = '''大陆课程:'''[[初中语文|语文]] · [[初中数学|数学]] · [[初中英语|英语]] · [[初中科学|科学]] · [[初中物理|物理]] · [[初中化学|化学]] · [[初中生物|生物]] · [[初中历史|历史]] · [[初中道德与法治|道德与法治]] · [[初中地理|地理]] · [[初中信息技术|信息技术]] · [[初中体育|体育]] · [[初中音乐|音乐]] · [[初中美术|美术]]<br /> '''台湾课程:'''[[国中国文|国文]] · [[国中英文|英文]] · [[国中数学|数学]] · [[国中生物|生物]] · [[国中理化|理化]] · [[国中地球科学|地球科学]] · [[国中生活科技|生活科技]] · [[国中地理|地理]] · [[国中历史|历史]] · [[国中公民|公民]] · [[国中童军|童军]] · [[国中家政|家政]] · [[国中辅导|辅导]] · [[国中电脑|电脑]] · [[国中音乐|音乐]] · [[国中美术|美术]] · [[国中表演艺术|表演艺术]] · [[国中健康|健康]] · [[国中体育|体育]] '''香港课程:'''[[初中数学(香港课程)|数学]] |group4 = 高中 | list4 = '''大陆课程:'''[[高中语文|语文]] · [[高中数学|数学]] · [[高中英语|英语]] · [[高中物理|物理]] · [[高中化学|化学]] · [[高中生物|生物]] · [[高中历史|历史]] · [[高中地理|地理]] · [[高中思想政治|思想政治]] · [[高中信息技术|信息技术]] · [[高中通用技术|通用技术]] · [[高中音乐|音乐]] · [[高中美术|美术]] · [[高中体育与健康|体育与健康]]<br /> '''大陆课程(课改):'''[[高中语文/课改|语文]] · [[高中数学/课改|数学]] · [[高中英语/课改|英语]] · [[高中物理/课改|物理]] · [[高中化学/课改|化学]] · [[高中生物/课改|生物]] · [[高中历史/课改|历史]] · [[高中地理/课改|地理]] · [[高中思想政治/课改|思想政治]] · [[高中信息技术/课改|信息技术]] · [[高中通用技术/课改|通用技术]] · [[高中音乐/课改|音乐]] · [[高中美术/课改|美术]] · [[高中体育与健康/课改|体育与健康]]<br /> '''台湾课程:'''[[国中国文|国文]] · [[国中英文|英文]] · [[国中数学|数学]] · [[国中生物|生物]] · [[国中理化|理化]] · [[国中地球科学|地球科学]] · [[国中生活科技|生活科技]] · [[国中地理|地理]] · [[国中历史|历史]] · [[国中公民|公民]] · [[国中童军|童军]] · [[国中家政|家政]] · [[国中辅导|辅导]] · [[国中电脑|电脑]] · [[国中音乐|音乐]] · [[国中美术|美术]] · [[国中表演艺术|表演艺术]] · [[国中健康|健康]] · [[国中体育|体育]] '''香港文憑試课程:'''[[数学必修部分|高中数学必修部分]] |belowstyle = |below= }}<noinclude> [[Category:模板]] </noinclude> peht1mhellehb3069di8mjcb2zpvodk JavaScript/Strings 0 32474 186763 186762 2026-08-16T13:33:08Z Pawsdt 68279 186763 wikitext text/x-wiki Javascript中的字符串是一种类数组,采用UTF-16编码的Unicode字符集。每个字符串在内存中都是一个16位值组成的序列。js对字符串的各项操作均是在对16位值进行操作,而非字符。 “\”后面的第一个字符不会被解析为字符,这就是js的转义字符: * <code>\o</code> - NUL字符 * <code>\b</code> - 退格符 * <code>\t</code> - 水平制表符 * <code>\n</code> - 换行符 * <code>\v</code> - 垂直制表符 * <code>\f</code> - 换页符 * <code>\r</code> - 回车符 * <code>\"</code> - 双引号 * <code>\'</code> - 撇号或单引号 * <code>\\</code> - 反斜线 * <code>\xXX</code> - 由两位十六进制数xx指定的latin-1字符 * <code>\uXXXX</code> - 由四位十六进制数XXXX指定的Unicode字符 常用字符串方法示例: <syntaxhighlight lang="javascript"> var s="hellow,pomelott"; console.log(s.charAt(0)); //h console.log(s.charAt(s.length-1)); //t //substring(开始,结束) //1. 从下标1开始(包括)到下标4结束(不包括) //2. substring()参数不支持负数 console.log(s.substring(1,4)); //"ell" ///slice(起始,结束) //1. 若起始位数字为负数,则从倒数开始; //2. 结束位数字可选,缺省表示从开始为到字符串末尾切割 console.log(s.slice(1,4)); //"ell" console.log(s.slice(-3));//"ott" //s.indexOf("x") x首次出现的位置,不存在则返回-1 console.log(s.indexOf("l")); //2 console.log(s.indexOf("z")); //-1 console.log(s.indexOf("o",6)); //o在位置6之后首次出现的位置,不存在返回-1 //s.lastIndexOf("x") x最后出现的位置,不存在则返回-1 console.log(s.lastIndexOf("o")); //12 console.log(s.lastIndexOf("z")); //-1 console.log(s.split(",")); //根据“,”将字符串转换为数组 console.log(s.replace("o","O")); //hellOw,pomelott 将第一个“o”替换为“O” console.log(s.toUpperCase()); //全文转换为大写 var str1="hellow,"; var str2="world"; console.log(str1.concat(str2)); //hellow,world 字符串连接 //search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。 console.log(s.search(/pomelo/)); //7 存在则返回首字符下标,不存在则返回-1 //match() 方法可在字符串内根据正则表达式检索,若存在则返回检索后的对象,否则返回null console.log(s.match(/pomelo/)); //["pomelo", index: 7, input: "hellow,pomelott"] console.log(typeof s.match(/pomelo/)); //object console.log(s.match("pop")); //null </syntaxhighlight> s9xt689and47q5a2oazap46ah9xprzi Talk:初中數學 1 34130 186766 186677 2026-08-16T13:42:20Z Pawsdt 68279 /* 关于此页面的子页面的格式问题 */ 默认折叠 186766 wikitext text/x-wiki == 关于此页面的子页面的格式问题 == {| class="mw-collapsible mw-collapsed" ! 此页面的子页面列表 |- | * [[初中数学]](简体标题) ** [[初中数学/目录]] *** [[初中数学/目录/几何]] **** [[初中数学/几何/毕氏定理及其逆定理]] **** [[初中数学/几何/面积与体积公式]] *** [[初中数学/目录/算术与代数]] **** [[初中数学/算术与代数/乘方与开方]] **** [[初中数学/算术与代数/二元一次方程组]] **** [[初中数学/算术与代数/绝对值]] **** [[初中数学/算术与代数/三元一次方程组]] **** [[初中数学/算术与代数/试商法求平方根]] **** [[初中数学/算术与代数/一元一次方程]] **** [[初中数学/算术与代数/有理数的概念与运算]] **** [[初中数学/算术与代数/整式的加减]] **** [[初中数学/算术与代数/整式的因式分解]] **** [[初中数学/算术与代数/正数、负数和数轴]] ** [[初中数学/七年级上册]] ** [[初中数学/七年级下册]] ** [[初中数学/八年级上册]] ** [[初中数学/八年级下册]] ** [[初中数学/九年级上册]] ** [[初中数学/九年级下册]] * [[初中數學]](繁体标题) ** [[初中數學/畢氏定理]] ** [[初中數學/初中數學概論]] ** [[初中數學/代數]] ** [[初中數學/二元一次方程式/例題2]] ** [[初中數學/平面幾何]] ** [[初中數學/算則觀念]] *** [[初中數學/算則觀念/分數]] ** [[初中數學/算則檢查]] *** [[初中數學/算則練習/乘法交換律]] *** [[初中數學/算則練習/等量公理]] *** [[初中數學/算則練習/分數四則]] *** [[初中數學/算則練習/去括號]] *** [[初中數學/算則練習/小數四則]] *** [[初中數學/算則練習/整數四則]] *** [[初中數學/算則練習/正負數四則]] ** [[初中數學/統計與機率]] ** [[初中數學/序]] ** [[初中數學/正負數]] ** [[初中數學/七年級數學(上冊)]] *** [[初中數學/七年級數學(上冊)/有理數]] *** [[初中數學/七年級數學(上冊)/正數和負數]] ** [[初中數學/七年級數學(下冊)]] ** [[初中數學/八年級數學(上冊)]] ** [[初中數學/八年級數學(下冊)]] ** [[初中數學/九年級數學(上冊)]] ** [[初中數學/九年級數學(下冊)]] [[Special:EditPage/{{FULLPAGENAME}}|查看此页面源代码]]以获取更多关于繁简的信息。 |} 有各种各样的分法:按照知识点,按照册(有两种不同的格式),还有其它的不在分类里的东西。现征集社区意见以决定分类方式。<span style="font-family:minecraft">Pawsdt([[User:Pawsdt|U]]|[[User talk:Pawsdt|T]]|[[Special:用户贡献|C]][+8])</span> 2026年3月2日 (一) 11:19 (UTC) :{{意見}} 私以為這不只是子頁面的排版問題,而是《初中數學》這本書的內容問題,即以學期分類內容或是以課題分類內容。 [[User:谪仙|谪仙]] ([[User talk:谪仙|留言]]) 2026年6月2日 (二) 01:10 (UTC) ::确实。Pawsdt [[User:Pawsdt|U]] [[User Talk:Pawsdt|T]] [[Special:Contributions/Pawsdt|C]][+8] 2026年6月2日 (二) 11:11 (UTC) === 讨论 === 请在下方发布各位的意见。<span style="font-family:minecraft">Pawsdt([[User:Pawsdt|U]]|[[User talk:Pawsdt|T]]|[[Special:用户贡献|C]][+8])</span> 2026年3月2日 (一) 11:19 (UTC)<small>(最后编辑于2026年3月2日 (一) 11:21 (UTC))</small> :我认为按照[[Template:学生用教科书]]的说法与小学数学,其应当采用七年级上册,七年级下册……之类的方式。<span style="font-family:minecraft">Pawsdt([[User:Pawsdt|U]]|[[User talk:Pawsdt|T]]|[[Special:用户贡献|C]][+8])</span> 2026年3月2日 (一) 11:19 (UTC) ::{{同意}} 意見同上。 [[User:谪仙|谪仙]] ([[User talk:谪仙|留言]]) 2026年6月2日 (二) 07:17 (UTC) :另,某些繁简混用的标题需要移动。 Pawsdt [[User:Pawsdt|U]] [[User Talk:Pawsdt|T]] [[Special:Contributions/Pawsdt|C]][+8] 2026年5月31日 (日) 15:57 (UTC) ::根據[[zh:w:Wikipedia:命名常规#技术要求#繁简统一|Wikipedia:命名常規§技術要求§繁簡統一]],閣下可以自行移動標題繁簡混用的頁面。 [[User:谪仙|谪仙]] ([[User talk:谪仙|留言]]) 2026年6月2日 (二) 07:43 (UTC) :::{{已完成}}。Pawsdt [[User:Pawsdt|U]] [[User Talk:Pawsdt|T]] [[Special:Contributions/Pawsdt|C]][+8] 2026年6月2日 (二) 11:11 (UTC) :本教科书还有些重复内容,例:勾股定理。 Pawsdt [[User:Pawsdt|U]] [[User Talk:Pawsdt|T]] [[Special:Contributions/Pawsdt|C]][+8] 2026年5月31日 (日) 16:09 (UTC) ::{{意見}} 可將內容重復或是教授相同課題的頁面合併到一起,再慢慢修改完善。完成後刪去多餘的頁面。 [[User:谪仙|谪仙]] ([[User talk:谪仙|留言]]) 2026年6月2日 (二) 13:52 (UTC) mtjvnr42kp0304183zcr1cd7b69k5ov 小学英语(三年级起) 0 34159 186769 183607 2026-08-17T03:06:44Z Pawsdt 68279 Stage 186769 wikitext text/x-wiki * [[/三年级上册/]]{{stage|0|2026年3月17日 (二) 16:24 (UTC)}} * [[/三年级下册/]]{{stage|0|2026年3月17日 (二) 16:24 (UTC)}} * [[/四年级上册/]]{{stage|0|2026年3月17日 (二) 16:24 (UTC)}} * [[/四年级下册/]]{{stage|0|2026年3月17日 (二) 16:24 (UTC)}} * [[/五年级上册/]]{{stage|0|2026年3月17日 (二) 16:24 (UTC)}} * [[/五年级下册/]]{{stage|0|2026年3月17日 (二) 16:24 (UTC)}} * [[/六年级上册/]]{{stage|0|2026年3月17日 (二) 16:24 (UTC)}} * [[/六年级下册/]]{{stage|0|2026年3月17日 (二) 16:24 (UTC)}} {{学生用教科书}} [[Category:小学英语]] [[Category:英语]] h6nx7e2jtgptn2ovd95pe432b9urs8j Template:((/doc 10 34512 186774 185145 2026-08-17T05:56:56Z Pawsdt 68279 未转义 186774 wikitext text/x-wiki {{Documentation subpage}} <!-- 请将分类添加在页面底部,并且将跨语言链接添加至维基数据。 --> == 用法 == 这个模板是用来替换两个开大弧号“'''{<!---->{'''”。 == 参见 == *[[Template:tlBf]] *[[Template:CurlyBh]] *[[Template:CurlyBf]] *[[Template:VarBh]] *[[Template:VarBf]] <includeonly> <!-- 将分类添加在此处,并且将跨语言链接添加至维基数据。 --> [[Category:辅助模板]] </includeonly> 1mi2qcmj04a6hfowfcf7x4w1j3e9nub Template:SimpleNavbox/doc 10 34535 186771 185296 2026-08-17T03:28:15Z Pawsdt 68279 TemplateData 186771 wikitext text/x-wiki {{Documentation subpage}} <!-- 请将分类添加在页面底部,并且将跨语言链接添加至维基数据。 --> 此模板为{{tl|Navbox}}的简化版,其不需要lua。 == 模板参数 == <templatedata> { "params": { "title": { "label": "标题", "description": "设定Navbox的标题。title优先级更高。", "type": "line", "aliases": [ "1" ], "required": true }, "topstyle": { "label": "标题样式", "description": "标题所应用的样式表。" }, "float": { "label": "浮动", "description": "文本对齐。", "autovalue": "left" }, "titlefloat": { "label": "标题文本浮动", "description": "标题文本浮动", "example": "center", "type": "content" }, "class": { "label": "类", "description": "表格应用的类" }, "tablestyle": { "description": "表格所应用的样式表" }, "navbar": {}, "mini": {} } } </templatedata> == 示例 == <syntaxhighlight lang="wikitext"> {|{{SimpleNavbox|<标题>}} ! 组1 | 表1 |- ! 组2 | 分表上文字 {| ! 分组1 | 分表1 |- ! 分组2 | 分表2<br/>第二行 |} * 并排文字 * 分表下文字 |} </syntaxhighlight> {|{{SimpleNavbox|<标题>}} ! 组1 | 表1 |- ! 组2 | 分表上文字 {| ! 分组1 | 分表1 |- ! 分组2 | 分表2<br/>第二行 |} * 并排文字 * 分表下文字 |} == 参见 == * {{tl|Navbox}} - lua版 <includeonly> <!-- 将分类添加在此处,并且将跨语言链接添加至维基数据。 --> </includeonly> 64wdqxfizphjl0x8gfbdyqlae8iexjw 美感智能閱讀使用指南暨實踐工作書 0 34732 186775 186752 2026-08-17T08:46:49Z ~2026-45215-18 69030 186775 wikitext text/x-wiki {{status|50%}} [[File:美感智能閱讀指南暨實踐工作書 Version4.0.png|thumb|美感智能閱讀指南暨實踐工作書 Version4.0]] 歡迎來到《美感智能閱讀使用指南暨實踐工作書》。 == 關於此書 == 此書介紹由中華民國教育部「美感與設計課程創新計畫團隊」之「美感智能閱讀計畫」的理念、教材設計、教學方法與實踐案例。 透過紙本閱讀、設計思維與美感教育的結合,提供教師、教育工作者及相關讀者作為課程設計與教學應用的參考。 === 教材特色 === * 以紙本閱讀作為主要學習媒介。 * 結合新聞、藝術、設計、文化、科技、環境及社會等多元主題。 * 透過版面設計、圖文編排、色彩、比例、質感與構成等元素,提供兼具閱讀與美感體驗的學習素材。 === 教學目標 === * 培養閱讀理解、美感素養及跨領域整合能力。 * 建立生活觀察、問題探究、思辨討論與創意表達能力。 * 引導學習者連結閱讀經驗、生活經驗與社會議題,發展自主學習與多元思考能力。 == 章節 == # [[/指南介紹摘要/]] {{stage|50%}} # [[/關於報紙參與教育摘要/]] {{stage|50%}} # [[/新報紙參與教育/]] {{stage|50%}} # [[/認識安妮新聞/]] {{stage|50%}} # [[/安妮新聞引導學習/]] {{stage|50%}} == 附加資源 == * 電子書:[https://aade.project.edu.tw/publish/30/ 美感智能閱讀使用指南(Version 1)] vol.01-vol.05 * 電子書:[https://aade.project.edu.tw/publish/31/ 美感智能閱讀實踐工作書(Version 1)] vol.01-vol.05 * 電子書:[https://aade.project.edu.tw/publish/32/ 美感智能閱讀指南暨實踐工作書(Version 2)] vol.06-vol.10 * 電子書:[https://aade.project.edu.tw/publish/33/ 美感智能閱讀指南暨實踐工作書(Version 3)] vol.11-vol.15 * 電子書:[https://aade.project.edu.tw/publish/34/ 美感智能閱讀指南暨實踐工作書(聆聽特刊)] * 電子書:[https://aade.project.edu.tw/publish/74/ 美感智能閱讀指南暨實踐工作書(Version 4)] vol.16-vol.20 * 電子書:[https://aade.project.edu.tw/publish/77/ 美感智能閱讀指南暨實踐工作書(Version 5)] vol.21-vol.25 * 安妮新聞刊物列表:[https://aade.project.edu.tw/annetimes/journal/ 安妮新聞刊物列表] * 美感智能閱讀計畫《安妮新聞 The Anne Times》課程實例:'''[https://zh.wikiversity.org/zh-tw/%E7%BE%8E%E6%84%9F%E6%99%BA%E8%83%BD%E9%96%B1%E8%AE%80%E8%A8%88%E7%95%AB%E3%80%8A%E5%AE%89%E5%A6%AE%E6%96%B0%E8%81%9E_The_Anne_Times%E3%80%8B%E8%AA%B2%E7%A8%8B%E5%AF%A6%E4%BE%8B 美感智能閱讀計畫《安妮新聞 The Anne Times》課程實例]''' == 外部連結 == * 美感與設計課程創新計畫官網:[https://aade.project.edu.tw/ 美感與設計課程創新計畫] * 安妮新聞官網:[https://aade.project.edu.tw/annetimes/ 安妮新聞] [[Category:美感智能閱讀使用指南暨實踐工作書| ]] 5zjuh6v5tk4hok3etyub5vq8181dnt6