LoginSignup
3
5

More than 5 years have passed since last update.

javascriptメモ

Last updated at Posted at 2015-05-16

関数についてメモ

無名関数とは

関数はデータ型なので、直接代入することができる
関数名がいらない

var hello = function(name) {
}

即時関数とは

定義した後にすぐ実行させたいときとかに使用する
関数名がいらない
変数をローカル変数として使用したいときに便利

function hello() {
  ...
}
hello();
(function() {
  ...
})();

タイマー処理についてメモ

関数名 説明
setInterval 一定時間ごとにある処理を繰り返し実行
setTimeout 一定時間ごとにある処理を実行

setInterval

前の処理が終わったかを確認せずに実行する
処理が重いとクラッシュする

var i = 0;
function show() {
  console.log(i++);
}
setInterval(function() {
  show();
}, 1000);

setTimeout

前の処理が終わったかを確認してから実行する
繰り返し処理にはこちらが最適

setTimeout(function() {
  show();
}, 1000);

setTimeoutを繰り返し処理にするには、show()を再帰的に呼び出す必要がある

var i = 0;
function show() {
  console.log(i++);
  setTimeout(function() {
    show();
  },1000);
}
show(); //最初の一回だけ呼び出す

setTimeoutを止めるには?

var tid = setTimeout(function() {
  show();
},1000);
if(i > 3) {
  clearTimeout(tid);
}

オブジェクトについてメモ

用語 説明
オブジェクト ハッシュのこと
プロパティ keyとvalueのセット

表記法

ふたつの書き方がある

user["email"] == user.email

関数をうめこんでみる

プロパティに関数が使える

{
  "user": {
    "greet": function() {
      ...
    }
  }
}

user.greet("Tom");

thisの使い方

thisは、オブジェクトを指す

user.email == this.email

組み込みオブジェクトについてメモ

  • String
  • Array
  • Math
  • Date

String

var s = new String("Tom"); // var s = "Tom";

s.length // 文字数を返す
s.replace("T", "r") // Tをrに置き換える

Array

var a = new Array(100, 200, 300); // var a = [100, 200, 300]

a.length // 配列の数を返す
a.push(500) // 末尾に追加

Math

Math.PI // 円周率
Math.ceil(5.3) // 切り上げ
Math.floor(5.3) // 切り捨て
Math.round(5.3) // 四捨五入

Date

var d = new Date(); // 現在時刻
var d = new Date(2014, 1, 1, 10, 20, 30); // 2014年1月1日10時20分30秒

d.getFullYear(); // 年を返す
d.getMonth(); // 月を返す
d.getTime(); // 1970年1月1日からの経過ミリ秒を返す

DOM操作についてメモ

HTMLやXMLを操作するためのAPIをDOM(Document Object Model)と言う
windowオブジェクトのdocumentプロパティに対して処理を行う

windowオブジェクト

windowオブジェクトとは

javascriptに標準で用意されているオブジェクトのこと
例えばconsole.log()alert()は、windowオブジェクトのプロパティである
(windowは省略できる)

windowオブジェクトの中身を見てみる

console.dir(window); // windowオブジェクトの中身が表示される

windowsオブジェクトのプロパティ

たくさんある
その中にdocumentプロパティが存在する

DOM操作をしてみる

要素の書き換え

var e = document.getElementByID("msg");

e.textContent = "hello"; // 文字の置き換え
e.style.color = "red"; // 文字色の変更
e.className = "myStyle"; // クラスを適用する

要素の生成

var greet = document.createElement("p");
text = document.createTextNode("hello world");

document.body.appendChild(greet).appendChild(text);
3
5
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
5