第3回
変数・演算子・文 (工事中)
開発部
てるー
アジェンダ
1. 変数
2. 等値演算子と同値演算子
3. for/in 文
アジェンダ
1. 変数
2. 等値演算子と同値演算子
3. for/in 文
変数の宣言
var x;
var i, sum;
var message = ‘hello’;
var a = 0, b = 0, c = 0;
グローバル変数とローカル変数
● グローバル変数
○ スコープ(※)はプログラム全体

● ローカル変数
○ スコープ(※)は変数が宣言された関数の中に限定

※ スコープ: 変数の有効範囲
グローバル変数とローカル変数
var g1 = ‘global’; // グローバル変数
function checkscope() {
var local = ‘local’; // ローカル変数
g2 = ‘global’; // グローバル変数
};
checkscope();
同じ名前があった場合はローカルを優先
var scope = ‘global’;
function checkscope() {
var scope = ‘local’;
return scope;
};
checkscope(); // local
JavaScript にはブロックスコープがない
function test(obj) {
for (var k = 0; k < 10; k++) {
console.log(k); // 0 から 9 が出力される
}
console.log(k); // 10 が出力される
}
JavaScript にはブロックスコープがない
function test(obj) {
if (typeof obj === ‘object’) {
var j = 0;
}
console.log(j); // 0 or undefined が出力される
}
問題
var scope = ‘global’;

●

(1) で出力されるのは?
a. global
b. local
c. 上記以外

●

(2) で出力されるのは?
a. global
b. local
c. 上記以外

function f() {
console.log(scope); // (1)
var scope = ‘local’;
console.log(scope); // (2)
}
f();
アジェンダ
1. 変数
2. 等値演算子と同値演算子
3. for/in 文
等値演算子と不等演算子
● 等値演算子「==」
○ 左辺と右辺の値が等しいかどうかを調べる

● 不等演算子「!=」
○ 左辺と右辺の値が等しくないかどうかを調べる

両方とも型変換を行いながら比較する
例
100 == 10 * 10; // true
‘abc’ == ‘def’; // false
true != false // true
true == 1 // true
0 == ‘0’ // true
‘’ != false // false
同値演算子と非同値演算子
● 同値演算子「===」
○ 左辺と右辺の値が同一であるかどうかを調べる

● 非同値演算子「!==」
○ 左辺と右辺の値が同一でないかどうかを調べる

型が異なる時点で前者なら false、後者なら true
例1
100 === 10 * 10; // true
‘abc’ === ‘def’; // false
true !== false // true
true === 1 // false
0 === ‘0’ // false
‘’ !== false // true
例2
var a = {
a: ‘hoge’,
b: ‘piyo’
};
var b = {
a: ‘hoge’,
b: ‘piyo
};
a === b // false
a === a // true

オブジェクト型は参照で同値かどうかを判
定される
アジェンダ
1. 変数
2. 等値演算子と同値演算子
3. for/in 文
for/in 文
● オブジェクトのプロパティを巡回する
● ただし、組み込みのプロパティやメソッドは調べら
れない
○ toString()
○ valueOf()
例
var obj = {
n: 3,
s: ‘test’,
b: true
};
for (var p in obj) {
console.log(p); // n, s, b
console.log(obj[p]); // 3, test, true
}
お わ り

JS 6th edition reading circle part 3