JavaScript学习笔记2----类型、值和变量
2016-11-28 16:49
429 查看
表达式和运算符
数组直接量中的列表逗号之间的元素可以省略,这是省略的空位会填充值undefined。
varsparseArray = [1,,,,5]
数组直接量的元素列表结尾处可以留下单个逗号,这时并不会创建一个新的值为undefined的元素。
JavaScript中的所有值不是真值就是假值。
左值:表达式只能出现在赋值运算符的左侧。
所有那些无法转换为数字的操作数都转换为NaN值。
在JavaScript中,所有的数字都是浮点型的,除法运算的结果也是浮点型,5/2 为2.5.
除数为0的运算结果为正无穷大或负无穷大,而0/0的结果是NaN。
求余运算同样适用浮点数,例:6.5%2.1= 0.2
“===”为严格相等运算符,用来检测两个操作数是否严格相等。
(1) 如果两个值类型不相同,则他们不相等。
(2) 如果两个值都是null或undefined,则他们不相等。
(3) 如果两个值是相同的布尔值,则他们相等。
(4) NaN和其他任何值都不相等,包括它本身!通过x!==x来判断x是否为NaN,只有在x为NaN的时候,这个表达式的值才为true。
比较运算符:
当其中一个操作数是(或者转换后是)NaN的时候,所有4个比较运算符均返回false.
eval()
只有一个参数。如果传入的参数不是字符串,它直接返回这个参数。如果是字符串,把字符串当成JavaScript代码编译。失败,返回SyntaxError异常。
var
geval = eval;
//使用别名调用eval将是全局eval
var x =
"global",
y = "global";
//两个全局变量
function f(){
//函数内执行的是局部eval
var x =
"local";
//定义局部变量
eval("x += 'changed';");
//直接eval更改了局部变量的值
return x; //返回更改后的局部变量
}
function g(){
//函数内执行的是全局eval
var y =
"local";
geval("y += 'changed';");
//间接调用改变了全局变量的值
return y;
//返回未更改的局部变量
}
console.log(f(),
x);
//输出“local changed global”
console.log(g(),
y);
//输出“local globalchanged ”
typeof 运算符
放在单个操作数的前面, 返回操作数类型。
delete 运算符
删除对象属性或者数组元素。
用户通过var 语句声明的变量不能除,通过function语句定义的函数和函数参数不能删除
数组直接量中的列表逗号之间的元素可以省略,这是省略的空位会填充值undefined。
varsparseArray = [1,,,,5]
数组直接量的元素列表结尾处可以留下单个逗号,这时并不会创建一个新的值为undefined的元素。
JavaScript中的所有值不是真值就是假值。
左值:表达式只能出现在赋值运算符的左侧。
所有那些无法转换为数字的操作数都转换为NaN值。
在JavaScript中,所有的数字都是浮点型的,除法运算的结果也是浮点型,5/2 为2.5.
除数为0的运算结果为正无穷大或负无穷大,而0/0的结果是NaN。
求余运算同样适用浮点数,例:6.5%2.1= 0.2
“===”为严格相等运算符,用来检测两个操作数是否严格相等。
(1) 如果两个值类型不相同,则他们不相等。
(2) 如果两个值都是null或undefined,则他们不相等。
(3) 如果两个值是相同的布尔值,则他们相等。
(4) NaN和其他任何值都不相等,包括它本身!通过x!==x来判断x是否为NaN,只有在x为NaN的时候,这个表达式的值才为true。
比较运算符:
当其中一个操作数是(或者转换后是)NaN的时候,所有4个比较运算符均返回false.
eval()
只有一个参数。如果传入的参数不是字符串,它直接返回这个参数。如果是字符串,把字符串当成JavaScript代码编译。失败,返回SyntaxError异常。
var
geval = eval;
//使用别名调用eval将是全局eval
var x =
"global",
y = "global";
//两个全局变量
function f(){
//函数内执行的是局部eval
var x =
"local";
//定义局部变量
eval("x += 'changed';");
//直接eval更改了局部变量的值
return x; //返回更改后的局部变量
}
function g(){
//函数内执行的是全局eval
var y =
"local";
geval("y += 'changed';");
//间接调用改变了全局变量的值
return y;
//返回未更改的局部变量
}
console.log(f(),
x);
//输出“local changed global”
console.log(g(),
y);
//输出“local globalchanged ”
typeof 运算符
放在单个操作数的前面, 返回操作数类型。
delete 运算符
删除对象属性或者数组元素。
var a = [1,2,3]; delete a[2]; //删除最后一个数组元素 2 in a; //元素2 在数组已经不存在了 a.length; //=》3 ,数组长度并没有改变
用户通过var 语句声明的变量不能除,通过function语句定义的函数和函数参数不能删除
相关文章推荐
- JavaScript学习笔记一:数据类型和变量
- JavaScript学习笔记1----类型、值和变量
- 【Web前端学习笔记】Javascript_01_变量,数据类型,类型转换
- JavaScript权威设计--JavaScript类型,值,变量(简要学习笔记三)
- Javascript学习笔记-----类型、值和变量
- Javascript学习笔记一基本数据类型与变量声明
- Javascript学习笔记:3种检测变量类型的方法
- javascript学习笔记整理(概述、变量、数据类型简介)
- JavaScript学习笔记一 - 基本语法,数据类型、变量
- JavaScript for Kids 学习笔记2. 数据类型与变量
- JavaScript基础学习笔记(一)——入门、语法、变量、数据类型
- Javascript学习指南(第2版)笔记(一) Script、数据类型和变量、操作符和语句
- javascript学习笔记(一):基础、输出、注释、引用、变量、数据类型
- JavaScript学习笔记4-变量类型
- javascript学习笔记_浅谈基础语法,类型,变量
- JavaScript学习笔记1—变量和数据类型
- 学习笔记——JavaScript数据类型和变量
- JavaScript学习笔记-基础语法、类型、变量
- LAMP兄弟连PHP课程学习笔记 第二天 数据类型和变量使用
- javascript 学习笔记(六)浏览器类型及版本信息检测代码