12
7

JSF**k講座 1限目【基礎講座】

Last updated at Posted at 2024-07-21

第一回の内容

今回はJSFuckには触れず、基礎知識です
これが理解できないとお話にならないんできちんと理解しましょう

そもそもJSFuckってなんぞや?

JSFuckとは[ ] ( ) + !の6種類の文字だけを使ってjsをかくことです

一言で言うなら

縛りプレイ

 
ですね
語源はbrain fuckから来てるっぽいです

あんまりfuckっていうのもアレなんで以降JSFと書きます
もちろんJava Server Facesではありません

JSの型の変換について

Num+Str.js
 10 + ''
 //'10'

10はNumber, ""が空のStringです。

つまりやっていることは
Number + String
です。
この場合Stringで出力されます

内部的には10''(空String)の二つを結合しているため、Stringで出力される、と言うわけです。

+(-)Str.js
 +'10'
 //10

+は単項演算子, '10'が10のStringです

今回やっていることは
+String
です。
この場合はNumberで出力されます

仕組み的には+の左側に何もない場合、+は単項演算子として働きます。

もちろん-でもいいのですが、出力する数字が反転してしまうため、使い所は選びましょう。

単項演算子は右側のものがNumberに変換可能だった場合、Numberに変更します。
もし変更できないものだった場合、NaNが返されます。

また

+true
//1

というようにすると 、1が帰ってきます
trueは1、falseだと0が帰ってきます

!.js
!true
//false

!は否定演算子, trueはboolean型です
よく見るのはif文などの条件式で、!=!hoge()などで使われてることが多いと思います。
否定演算子という通りtrueやfalseなどのboolean型などを反転することができます

他にも

!''.js
!''
//true

というふうに何もないもの(false)を否定してあげると、trueが帰ってきます

'hoge'[0].js
'hoge'[0]
//'h'

'hoge'がString, [0]がインデックス(添え字)です
String[n]というふうに書くとStringのn番目の文字を取得できます
左から順に0から連番で振られています。

練習問題

先ほどまでのことを問題にしました
解いてみましょう

Q1

10+10
A1
20

Q2

"10"+"10"
A2
'1010'

Q3

10+"10"
A3
'1010'

Q4

+"10"
A4
10

Q5

(+true)+'0'
A5
'10'

Q6

!""+""
A6
'true'

Q7

'hogehoge'[3]
A7
'e'

終わり

以上でJSF講座1限目を終わります
この基礎が非常に大切です

2限目ではいよいよJSFを書いていきます!

時間割

1限目
JSF**k講座1限目【基礎講座】(ここ)
2限目
JSF**k講座2限目【最初の文字たち】
3限目
JSF**k講座3限目【関数の実行】
4限目
JSF**k講座4限目【全ての英字(小文字)】

チートシート
JSFチートシート

12
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
7