LoginSignup
3
0

More than 5 years have passed since last update.

ブックマークレットでの困った集

Last updated at Posted at 2018-07-09

ブックマークレットを作っていて困ったことをメモしていきます。壁に当たった時に追記していくスタイルでいきます。

Uncaught SyntaxError: Invalid or unexpected token が発生

2018/7/9
10で割りたいだけなのに、うまく動かなかった。

コード

javascript:(
    function(){
        for( i=0; i<100; i++){
            if( i % 10 == 0 ){
                console.log(i);
            }
        }
    }
)()

Closure compilerのコード

(function(){for(i=0;100>i;i++)0==i%10&&console.log(i)})();

実行結果

image.png

image.png

原因

%10 がURLに入ると、ブラウザがURLエンコードされた文字として扱ってしまい正しく解釈されないから。%2から%9までならうまくいく(chromeブラウザの場合)。

解決方法

剰余演算子の%を%25にエンコードする。見かけ上は%2510になるが2510で割るわけではない。
i % 10 == 0 ではなく、i % val == 0 のように何かの変数で割るようにする。単純にやりすぎるとclosure compilerが気を利かして%10に置き換えてしまうので注意
10以上で割るコードを書かない。

3
0
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
3
0