20 bytes
Para referência, esta é a versão original sem espaço em branco e sem nomear a função:
n=>n>0?n<255?n:255:0
Experimente online!
19 bytes
Podemos salvar um byte invertendo a lógica dos testes ternários e usando n>>8
para testar se n é maior que 255 . Devido à operação bit a bit, isso irá falhar para n ≥ 232. .
n=>n<0?0:n>>8?255:n
Experimente online!
19 bytes
fa l s e0n≥232
n=>n>255?255:n>0&&n
Experimente online!
18 bytes
256−232≤n<232falsen<0
n=>n>>8?n>0&&255:n
Experimente online!
Comentado
n => // n = input number
n >> 8 ? // if n is greater than 255 or n is negative:
n > 0 && // return false if n is negative
255 // or 255 otherwise
: // else:
n // return n unchanged
(Esta é uma revisão fixa do código proposto por @ValueInk nos comentários.)
17 bytes
−224<n≤224
n=>n>>8?-n>>>24:n
Experimente online!
Comentado
n => // n = input number
n >> 8 ? // if n is greater than 255 or n is negative:
-n >>> 24 // non-arithmetic right-shift of -n by 24 positions
: // else:
n // return n unchanged