第二章基本数据类型
1. 最大数 Infinity 无穷大
JavaScript 所能处理的最大值是 1.7976931348623157e+308,而最小值为 5e-324。
NAN - Not A Number typeof -> 'number'
JavaScript语言中有五大基本数据类型:
- 数字;
- 字符串;
- 布尔值;
- undefined;
- null。
任何不属于基本类型的东西都属于对象。
-
数字类型可以存储的数据包括:正负整数、浮点数、十六进制数与八进制数、指
数以及特殊数值 NaN、Infinity、-Infinity。 -
字符串类型存储的是一对引号之间的所有字符。
-
布尔类型的值只有两个:true 和 false。
-
null类型的值只有一个:null。
-
undefined类型的值只有一个:undefined。
-
绝大部分值在转换为布尔类型时都为 true,但以下 6 种 falsy 值除外:
- "";
- null;
- undefined;
- 0;
- NaN;
- false。
第三章 函数
- URI (Uniform Resource Identifier 统一资源标识符)
URL ( Uniform Resource Locator, 统一资源定位符)
encodeURI()或 encodeURIComponent()。前者会返回一 个可用的 URL,而后者则会认为我们所传递的仅仅是 URL 的一部分。
3.3 函数的作用于
- “全局变量”指的是定义在所有函数之外的变量(也 就是定义在全局代码中的变量),
- “局部变量”,所指的则是在某个函数中 定义的变量。
3.3.1 变量的提升(hoisting)
当JavaScript执行过程进入新的函数时, 函数内被声明的所有变量都会被移动(提升)到函数最开始的地方.
注意: 被提升的只有变量的声明, 而与之相关的赋值操作 并不会被提升
var a = 123;
function f() {
alert(a); //undefined
var a = 1;
alert(a); //1
}
等价于
var a = 123;
function f() {
var a; // var a = undefined;
alert(a);
a = 1;
alert(a);
}
3.4 函数也是一种数据
1. 函数标识记法 (匿名函数)
var f = function () {
return 1;
}
- 特性:
- 他们所包含的是代码
- 他们是可执行的(可调用的);
3.4.3 匿名函数的用法
- 匿名函数作为参数传递给其他函数 (回调函数)
- 执行某些一次性任务
匿名回调函数的优势:
1. 他可以让我们在不做命名的情况下传递函数(这意味着可以节省变量名的使用);
2. 我们可以将一盒函数调用操作委托给另一个函数(这意味着可以节省一些代码编写工作);
3. 他们也有助于提升性能
3.4.4 即时函数
1. 不会产生任何全局变量, 无法重复执行, 适合执行一些一次性任务或初始化任务
( function () {
alert('foo');
}
)();
(function () {
// ...
} () );
3.4.5 内部(私有)函数
优点:
1. 有助于我们确保全局名字空间的纯净性(这意味着命名冲突的机会很小);
2. 确保私有性 - 这使我们可以选择只将一些必要的函数暴露给"外部世界", 而保留属于自己的函数, 使他们不为该应用的其他部分所用
3.5 闭包
3.5.3 getter setter
var getValue, setValue;
(function() {
var secret = 0;
getValue = function(){
return secret;
};
setValue = function (v) {
if (typeof v === "number") {
secret = v;
}
};
}());
//输出
getValue(); //0
setValue(123);
getValue(); //123
setValue('111');
getValue(); //123
3.5.4 迭代器
function setup(x) {
var i = 0;
return function(){
return x[i++];
};
}
var next = setup(['a', 'b', 'c']);
next(); //a
next(); //b
next(); //c
第四章
16进制转10进制
parseInt('ff', 16) //255
10进制 -> 16进制
(255).toString(16) //'ff'
4.2.7 Math
Math对象不是函数对象不能用new创建, Math只是一个包含一系列方法和属性, 用于数学计算的全局内建对象
-
数字常数π
Math.PI;
3.141592653589793 -
2的平方根
Math.SQRT2
1.4142135623730951 -
欧拉常数e
Math.E
2.718281828459045 -
2的自然对数
Math.LN2;
0.6931471805599453 -
10的自然对数
Math.LN10
2.302585092994046 -
随机数
Math.random() * 8 + 2
(2到10之间的某个数)
数字取整
- floor(); 小于或等于指定值的最大整数
- ceil(); 取大于或等于指定值的最小整数
- round(); 取最靠近指定值的整数.
1. 2的8次方
Math.pow(2, 8); //256
2. 9的平方根;
Math.sqrt(9); //3
网友评论