💾str.isPunctuator
JS ⟩ primitives ⟩ String ⟩ custom members ⟩ .isPunctuator
replit:punctuators
// 📁 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};
replit:punctuators
// import String extensions
const _StringExt = require('./String_ext.js');
'->'.isPunctuator, // false
'=>'.isPunctuator, // true
Last updated