質問: $('.slide'); ``` これは変数に何を代入していますか。コード内には$という関数は定義されていません。.slideshowと.slideはdiv要素に付いているクラス名です。 どうかよろしくお願いいたします。 【追記】 サイトのURLは以下です。 http://sakamock.hatenablog.com/entry/2017/01/12/132656 コードを読み進めると以下の記述がありました。 ``` function randomize(selector){ $slideshow.find(selector).sort(function(){ return Math.round(Math.random()) - 0.5; }).detach().appendTo($slideshow); } ``` 2行目で$slideshowに対してfind()関数を呼び出していますが、記述を簡単にするために$slideshowに$('.slideshow')という文字列を代入したという解釈は間違っていますか。
回答: ### ライブラリ > > http://sakamock.hatenablog.com/entry/2017/01/12/132656 > > > その記事からリンクされているjsfiddleに行けば、jQuery 3.1.1を使用しいることが分かります。 https://jsfiddle.net/sakmak/zf7mejrx/3/ HTMLソースにある https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.6.0/slick.js を開けば、公式サイトも分かります。 http://kenwheeler.github.io/slick/ ### 変数を使用する意図 > > 2行目で$slideshowに対してfind()関数を呼び出していますが、記述を簡単にするために$slideshowに$('.slideshow')という文字列を代入したという解釈は間違っていますか。 > > > `$('.slideshow')` を複数回呼び出す場合、「1回目の返り値」と「2回目以降の返り値」が等しくなります。 (1回目と2回目以降の間に `jQuery('.slideshow')` の返り値を変化させる処理が入った場合を除きます) すると、**2回目以降に全く同じ処理をさせる**ので、関数処理コストが無駄になります。 変数に関数の返り値をキャッシュしておけば、この問題は解消されます。 Re: jaaaa さん