javascript中的双分号语法

use*_*797 7 javascript

有人能告诉我javascript中的双分号(;;)是什么意思吗?我在fullcalendar.js中看到它们.

谢谢.

这是fullcalendar.js代码的片段(取自CDNJS):

(function($, undefined) {

;;

var defaults = {

    // display
    defaultView: 'month',
    aspectRatio: 1.35,
    header: {
        left: 'title',
        center: '',
        right: 'today prev,next'
    },
    weekends: true,
    weekNumbers: false,
    weekNumberCalculation: 'iso',
    weekNumberTitle: 'W',   
    allDayDefault: true,
    ignoreTimezone: true,

    // event ajax
    lazyFetching: true,
    startParam: 'start',
    endParam: 'end',

    // time formats
    titleFormat: {
        month: 'MMMM yyyy',
        week: "MMM d[ yyyy]{ '—'[ MMM] d yyyy}",
        day: 'dddd, MMM d, yyyy'
    },
    columnFormat: {
        month: 'ddd',
        week: 'ddd M/d',
        day: 'dddd M/d'
    },
    timeFormat: { // for event elements
        '': 'h(:mm)t' // default
    },

    // locale
    isRTL: false,
    firstDay: 0,
    monthNames: ['January','February','March','April','May','June','July','August','September','October','November','December'],
    monthNamesShort: ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'],
    dayNames: ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],
    dayNamesShort: ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'],
    buttonText: {
        prev: "<span class='fc-text-arrow'>&lsaquo;</span>",
        next: "<span class='fc-text-arrow'>&rsaquo;</span>",
        prevYear: "<span class='fc-text-arrow'>&laquo;</span>",
        nextYear: "<span class='fc-text-arrow'>&raquo;</span>",
        today: 'today',
        month: 'month',
        week: 'week',
        day: 'day'
    },

    // jquery-ui theming
    theme: false,
    buttonIcons: {
        prev: 'circle-triangle-w',
        next: 'circle-triangle-e'
    },

    //selectable: false,
    unselectAuto: true,

    dropAccept: '*',

    handleWindowResize: true

};

...
}
Run Code Online (Sandbox Code Playgroud)

not*_*ary 10

双分号;;与(在github上的)for情况下的循环无关.fullcalendar.js

解析或执行代码本身没有任何价值(它基本上是无害的); 相反,作者;;仅仅用作哨兵来分隔逻辑块代码.这样做是一个奇怪而深奥的选择,但事实证明使用CTRL-F搜索;;从一个部分跳转到另一个部分非常有用(例如,类定义似乎以这种方式分开) .

作者本可以使用评论,例如:

/* ;; */

要么

/* CLASSDEF */

等,但他没有.

同样确认:我测试的JavaScript minifiers删除了;;代码中绝对不重要的内容,并且在搜索缩小代码时作为哨兵没有帮助.(但是评论都没有,因为它们被删除了).


Saj*_*ath 5

Empty “for” loop
Run Code Online (Sandbox Code Playgroud)

for(;;){...} 和说一样 while(1){...}

for(;;) 跳出意味着“无限循环”比 while(1)

facebook's AJAX responses 都以一个空的 for 循环开始。

  • 这正是让我难倒的地方。for 循环中的两个分号。谢谢你。 (3认同)