nodejs学习笔记

变量

  1. let变量
    let允许声明一个作用域被限制在块级中的变量、语句或者表达式。在Function中局部变量推荐使用let变量,避免变量名冲突。
    作用域规则
    let声明的变量只在其声明的块或子块中可用,这一点,与var相似。二者之间最主要的区别在于var声明的变量的作用域是整个封闭函数。

function varTest() {
var x = 1;
if (true) {
var x = 2; // 同样的变量!
console.log(x); // 2
}
console.log(x); // 2
}

function letTest() {
let x = 1;
if (true) {
let x = 2; // 不同的变量
console.log(x); // 2
}
console.log(x); // 1
}

2.用var关键字声明和不用关键字声明
// num1为全局变量,num2为window的一个属性
var num1 = 1;
num2 = 2;
// delete num1; 无法删除
// delete num2; 删除
function model(){
var num1 = 1; // 本地变量
num2 = 2; // window的属性
// 匿名函数
(function(){
var num = 1; // 本地变量
num1 = 2; // 继承作用域(闭包)
num3 = 3; // window的属性
}())
}
3. const关键字
const 关键字用来声明 JavaScript中的常量(与变量相对,不可修改,但同样是用于存储信息的"容器"。),常量的值不能通过重新赋值来改变
//定义常量a并赋值为0
const a = 0;

//报错(不能重新赋值)
a = 1;

//报错(不能重新声明)
const a = 2;

//输出0
console.log("a is: " + a);

  1. 字面量的概念
    字面量(literal)用于表达源代码中一个固定值的表示法(notation),整数、浮点数以及字符串等等都是字面量。
    示例:
    var a=1; // a 是变量,1 是字面量
    又如:

var stooge = { // stooge 是一个对象
“frist-name” = “Julie”, // 等号左为属性名,右侧为属性值
last_name = “beck” // 属性名如果是合法的标识符,可省略引号

}; // “frist-name”, last_name, “Julie”, “beck” 都是对象字面量
总之,字面量就是没有用标识符封装起来的量,是“值”的原始状态。

与常量的区别如下:

// C/C++:

const int A = 1; // A 是常量,1 是字面量
A++; // error,常量值不能改变

5、重复声明变量
JavaScript 允许重复声明变量,后声明的覆盖之前的

var a = 1;
var a = ‘x’;
console.log(a);
// 输出 ‘x’

6、JavaScript 允许重复定义函数

JavaScript 没有重载这个概念,它仅依据函数名来区分函数。

后定义的同名函数覆盖之前的,与参数无关。

function test() {
console.log(“test”);
}
test(); //输出 “test arg0 + undefined”

function test(arg1) {
console.log(“test arg” + arguments.length + " + " + arg1);
}
test(1,2); //输出 “test arg2 + 1”

值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。
引用数据类型:对象(Object)、数组(Array)、函数(Function)。

JavaScript 拥有动态类型
JavaScript 拥有动态类型。这意味着相同的变量可用作不同的类型:
实例
var x; // x 为 undefined
var x = 5; // 现在 x 为数字
var x = “John”; // 现在 x 为字符串

创建一个数组

数组有四种方式:

var arr1 = new Array(‘a’, ‘b’, ‘c’); //这是一个预定义的数组,在创建时初始化
var arr2 = [‘a’, ‘b’, ‘c’ ]; //同样是在创建时初始化,但是这种创建更为简洁直观
var arr3 = new Array( );
var arr4 = [ ]; //这两种是创建空的数组

对象的创建,一般推荐使用
var people = {name : ‘Tom’, age : 21 , eat : function(){ } }
也可先创建对象再追加属性和方法

var people = new Object();
people.name = ‘Tom’;
people.age = 21;
people.eat = function(){ }

function Demo(){
var obj=new Object();
obj.name=“张思”;
obj.age=12;
obj.firstF=function(){
}
obj.secondF=function(){
}
return obj;
}

var one=Demo();
// 调用输出
document.write(one.age);

function Demo(){
var obj = new object();
obj.name
obj.age = 12;
obj.firstF = function(){
obj.secondF = function
return obj;
}

第二种:

function Demo(){
this.name=“张思”;
this.age=12;
this.firstF=function(){
}
this.secondF=function(){
}
}

var one=new Demo

// 调用输出
document.write(one.age);

如果你要判断该对象是否为数组,可以使用以下两种方法:

1、使用 isArray 方法

var cars=new Array();
cars[0]=“Saab”;
cars[1]=“Volvo”;
cars[2]=“BMW”;
// 判断是否支持该方法
if (Array.isArray) {
if(Array.isArray(cars)) {
document.write(“该对象是一个数组。”) ;
}
}

2、使用 instanceof 操作符

var cars=new Array();
cars[0]=“Saab”;
cars[1]=“Volvo”;
cars[2]=“BMW”;

if (cars instanceof Array) {
document.write(“该对象是一个数组。”) ;
}

注意 undefined 和 null 都是小写,并且。

var x,y;
if(x == null){
document.write(x);
}
if(y == undefined){
document.write(y);
}

基本类型的变量是存放在栈内存(Stack)里的

var a,b;
a = “zyj”;
b = a;
console.log(a); // zyj
console.log(b); // zyj
a = “呵呵”; // 改变 a 的值,并不影响 b 的值
console.log(a); // 呵呵
console.log(b); // zyj
图解如下:栈内存中包括了变量的标识符和变量的值。

利用 toString() 方法可以把数值转换为字符串。

使用 parseInt() 和 parseFloat() 方法可以把字符串转换为数值。

要把任何值转换为布尔型数据,在值的前面增加两个 !! 感叹号即可,!!0 为 False,其余的均为 True。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值