💾str.isPunctuator

JSprimitivesStringcustom members ⟩ .isPunctuator

// 📁 String_ext.js

// punctuators
const punctuators = [
  '?.',  '{',   '}',    '(',  ')',  '[',
  ']',   '.',   '...',  ';',  '',   '',
  '<',   '>',   '<=',   '>=', '==', '!=',
  '===', '!==', '+',    '-',  '*',  '/',
  '%',   '**',  '++',   '--', '<<', '>>',
  '>>>', '&',   '|',    '^',  '!',  '~',
  '&&',  '||',  '??',   '?',  ':',  '=',
  '+=',  '-=',  '*=',   '/=', '%=', '**=',
  '<<=', '>>=', '>>>=', '&=', '|=', '^=',
  '&&=', '||=', '??=',  '=>'
];

// getters for String
Object.defineProperties(String.prototype, {

    // 🔸 str.isPunctuator
    isPunctuator: {
        
        get() { return punctuators.includes(this.valueOf()) }
        //                                       ^^^^^^^^^
        // 🧨 雷區
        // -----------------------------------------------
        // get() { return keywords.includes(this) }
        //                                  ^^^^
        // ❗ `this` will be "wrapped" in a `String` object,
        //    hence `false` is "always" returned.
        
    },

});

// export
module.exports = {punctuators};

Last updated