JavaScript

1

//字符串转换为数字
//parseInt()和parseFloat()

//字面量

  

2.

//注释
// 单行注释 常用
/* 这是一个更长的,
   多行注释
*/
/* 然而, 你不能, /* 嵌套注释 */ 语法错误 */

//声明 JavaScript有三种声明方式。
var    //声明一个变量,可赋一个初始化值。
let     //声明一个块作用域的局部变量,可赋一个初始化值。
const //声明一个块作用域的只读的命名常量。

//变量
//在应用程序中,使用变量来作为值的符号名。变量的名字又叫做标识符,其需要遵守一定的规则。
//一个 JavaScript 标识符必须以字母、下划线(_)或者美元符号($)开头;后续的字符也可以是数字(0-9)。因为 JavaScript 语言是区分大小写的,这里所指的字母可以是“A”到“Z”(大写的)和“a”到“z”(小写的)。

//声明变量
//使用关键词 var。例如 var x = 42。这个语法可以用来声明局部变量和全局变量。
//直接赋值。例如,x = 42。这样就会声明了一个全局变量并会在严格模式下产生一个 ReferenceError。声明变量时不应该用这种方式。
//使用关键词 let。例如 let y = 13。这个语法可以用来声明块作用域的局部变量。

//变量求值
//用 var 或 let 语句声明的变量,如果没有赋初始值,则其值为 undefined。
//试图访问一个未声明的变量会导致一个 ReferenceError 异常被抛出:
var a;
// the value of a is undefined
console.log("The value of a is " + a); 

// the value of b is undefined
console.log("The value of b is " + b); 
var b;

// Uncaught ReferenceError: c is not defined
console.log("The value of c is " + c); 

let x;
// the value of x is undefined
console.log("The value of x is " + x); 

// Uncaught ReferenceError: y is not defined 
console.log("The value of y is " + y);
let y;
//你可以使用 undefined 来判断变量是否已赋值
if(input === undefined){}

//undefined 值在布尔类型环境中会被当作 false
var myArray;
if (myArray){} //不成立
//数值类型环境中 undefined 值会被转换为 NaN
var a;
a + 2; // 计算为 NaN
//当你对一个 null 变量求值时,空值 null 在数值类型环境中会被当作0来对待,而布尔类型环境中会被当作 false
var n = null;
typeof(n);  // "object"  Null类型只有一个值,称为null.
console.log(n * 32); // 0

//变量的作用域
//在所有函数之外声明的变量,叫做全局变量,因为它可被当前文档中的任何其他代码所访问。在函数内部声明的变量,叫做局部变量,因为它只能在该函数内部访问。
//变量声明提升
//JavaScript 变量的另一特别之处是,你可以引用稍后声明的变量而不会引发异常。这一概念称为变量声明提升(hoisting);JavaScript 变量感觉上是被“提升”或移到了函数或语句的顶部。然而提升后的变量将返回 undefined 值。所以在使用或引用某个变量之后进行声明和初始化操作,这个被提升的引用仍将得到 undefined 值。
console.log(x === undefined); // true
var x = 3;

var myvar = "my value";
(function() {
  console.log(myvar); // undefined
  var myvar = "local value";
})();

//在 ECMAScript 2015 中,let(const)将不会提升变量到代码块的顶部。因此,在变量声明之前引用这个变量,将抛出错误ReferenceError。
console.log(x); // ReferenceError
let x = 3;

//函数提升
/* 函数声明 */
foo(); // "bar"
function foo() {
  console.log("bar");
}

/* 函数表达式 */
baz(); // TypeError: baz is not a function
var baz = function() {
  console.log("bar2");
};

//全局变量
//全局变量实际上是全局对象的属性。在网页中,(译注:缺省的)全局对象是 window,所以你可以用形如 window.variable的语法来设置和访问全局变量。
//因此,你可以通过指定 window 或 frame 的名字,从一个 window 或 frame 访问另一个 window 或 frame 中声明的变量。例如,在文档里声明一个叫 phoneNumber 的变量,那么你就可以在子框架里使用 parent.phoneNumber 来引用它。

//常量

  

posted @ 2018-09-11 15:19  liuyj_vv  阅读(128)  评论(0编辑  收藏  举报