------------------------------------------------------Js笔记(脚本语言 node.js)-------------------------
Js五种基本类型:数字,字符串,布尔,null,undefined;
结构,表现,行为分离。
变量:变量是存储的容器
变量命名规则:
变量名区分大小写,允许包含字母、数字、美元符号$及下划线,但第一个字符不能是数字,不能 包含空格和其他标点符号。
以字母或【下划线开始($)】不推荐,后面跟上数字,字母下划线。不允许使用空格和其他标点。
驼峰命名法(小驼峰),帕斯卡命名法(大驼峰),下划线
长度尽可能短并且体现值的类型
命名严格区分大小写
不能使用关键字和保留字
保留字就是预留的关键字。
Var b;
Alert (b);
Var a = String.noteExists;
Alert (a);
全都为undefined;
Null NaN 空字符串(’’) undefined 都为假(false)
NaN不等于任何数,(包括自身)不能跟自身比较 !(非)占一个等号的位置
强制转换
parseInt() 转换成整型
parseInt()方法首先查看位置0处的 字符,判断它是否是个有效数字;
如果不是,该方法将返回NaN,不再继续执行其他操作。但如果该字
符是有效数字,该方法将查看位置1处的 字符,进行同样的 测试。
这一过程将持续到发现非有效数字的字符为止,此时parseInt()将把
该字符之前的字符串转换成数字。
例子:
如果要把字符串 "1234blue "转换成整数,那么parseInt()将返回1234,因为当它检测到字符b时,就会停止检测过程。
字符串中包含的数字字面量会被正确转换为数字,因此 字符串 "0xA "会被正确转换为数字10。
不过,字符串 "22.5 "将被转换成22,因为对于整数来说,小数点是无效字符。
parseInt("1234blue") 1234
parseInt("234",0) 234
parseInt("0xA") 10
parseInt("0123123") 123123
parseInt(45,16) 69
parseInt("true") NaN
parseInt(true) NaN
parseInt(" 45 6 ab") 45
parseFloat()
转换成浮点型
parseFloat()方法与parseInt()方法的处理方式相似,从位置0开始查看每个字符,
直到找到第一个非有效的字符为止,然后把该字 符之前的字符串转换成数字。
不过,对于这个方法来说,第一个出现的小数点是有效字符。如果有两个小数
点,第二个小数点将被看作无效的, parseFloat()方法会把这个小数点之前的
字符串转换成数字。这意 味着字符串 "22.34.5 "将被解析成22.34。
例子:
parseFloat("123.12.5") 123.12
parseFloat("123") 123
parseFloat("dfg") NaN
parseFloat("2e3a") 2000
Boolean(value)——把给定的值转换成Boolean型;
Number(value)——把给定的值转换成数字(可以是整数或浮点数);
String(value)——把给定的值转换成字符串。
&&与(和)的意思 || 或的意思 =赋值 ==比较 ===比较类型 +表示拼接字符串 break 结束循环 continue 代表跳过当次循环,进入下次循环
var定义变量 document.write 输出文本结果
----------------------------------------------------------------------------------循环----------------------------------------------------------
一. for循环
基本格式:for(初始化变量(i=1);条件控制(i<=5);增量(i++)){ 循环语句 }
执行循序:1.初始化变量 2.判断是否符合条件 3符合执行循环语句 4增量自增或自减
进阶 :多层嵌套for循环 最外层循环一次 里层整套循环 以此类推
特点:可以控制循环次数
for循环的嵌套
for(var i=1;i<=3;i++){
document.write('外层循环循环第'+i+'次的结果<br/>');
for(var j=1;j<=2;j++){
document.write('内层循环循环第'+j+'次的结果<br/>');
}
document.write('<hr/>');
}
二. while循环
基本格式:while(循环条件){ 循环语句 }
执行循环:1判断是否符合循环条件 2符合循环语句执行循环条件
特点 :if 与 循环的结合
三. 执行循环:1无条件执行一次循环语句 2判断循环条件来决定是否开始1次以后的循环
特点 :无条件会执行一次循环
四. 跳出循环的两个命令
break :跳出循环
contione :跳出本次循环
强制转换
parseInt() 转换成整型
parseInt()方法首先查看位置0处的 字符,判断它是否是个有效数字;如果不是,该方法将返回NaN,不再继续执行其他操作。但如果该字符是有效数字,该方法将查看位置1处的字符,进行同样的 测试。这一过程将持续到发现非有效数字的字符为止,此时parseInt()将把该字符之前的字符串转换成数字。
例子:
如果要把字符串 "1234blue "转换成整数,那么parseInt()将返回1234,因为当它检测到字符b时,就会停止检测过程。
字符串中包含的数字字面量会被正确转换为数字,因此 字符串 "0xA "会被正确转换为数字10。
不过,字符串 "22.5 "将被转换成22,因为对于整数来说,小数点是无效字符。
parseInt("1234blue") 1234
parseInt("234",0) 234
parseInt("0xA") 10
parseInt("0123123") 123123
parseInt(45,16) 69
parseInt("true") NaN
parseInt(true) NaN
parseInt(" 45 6 ab") 45
parseFloat() 转换成浮点型
parseFloat()方法与parseInt()方法的处理方式相似,从位置0开始查看每个字符,直到找到第一个非有效的字符为止,然后把该字 符之前的字符串转换成数字。不过,对于这个方法来说,第一个出现的小数点是有效字符。如果有两个小数点,第二个小数点将被看作无效的, parseFloat()方法会把这个小数点之前的字符串转换成数字。这意味着字符串 "22.34.5 "将被解析成22.34。
例子:
parseFloat("123.12.5") 123.12
parseFloat("123") 123
parseFloat("dfg") NaN
parseFloat("2e3a") 2000
Boolean(value)——把给定的值转换成Boolean型;
Number(value)——把给定的值转换成数字(可以是整数或浮点数);
String(value)——把给定的值转换成字符串。
弹框显示 alert docment.write 生成普通文本
--------------------------------------------------------------------------------JS函数----------------------------------------------------------------------
函数名称严格区分大小写 函数名称重复会产生覆盖
有时,我们会希望函数将值返回调用它的地方。
通过使用 return 语句就可以实现。
在使用 return 语句时,函数会停止执行,并返回指定的值。
函数就是包裹在花括号中的代码块,前面使用了关键词 function:
提示:JavaScript 对大小写敏感。关键词 function 必须是小写的,并且必须以与函数名称相同的大小写来调用函数。
如果你把值赋给尚未声明的变量,该变量将被自动作为全局变量声明。
alert(calc(1,3,5)); 控制着对象的长度
声明提前:
function test1(){
alert(y); //undefined
var y = 5; //全局变量
alert(y); //5
}
回调函数:例子
function calc(x,y){
return x()+y();
}
function test1(){
return 3;
}
function test2(){
return 5;
}
alert(calc(test1,test2));
求最大的值
function test1(){
var paramsNum=arguments.length;
var max=0;
for(var i=0;i<=paramsNum-1;i++){
if(arguments[i]>max){
max=arguments[i];
}
}
return max;
}
alert(test1(123,3432,23456,445643));
无var为全局变量 有var为局部变量
function test1(a,b){
return a*b;
}
alert(test1.call(test1,5,10)); //call有多个参数,但是第一个参数是对象,后面都是要传的参数
var params=[3,4];
alert(test1.apply(test1,params)); //apply有两个参数,第一个对象,第二个是数组
自调用函数的形式
function(a,b){
alert(a+b);
}
)(3,5);
闭包,指的是词法表示包括不被计算的变量的函数,也就是说,函数可以使用函数之外定义的变量。
对象:创建对象的方式 1.通过对象字面量的形式创建对象
var obj={}; //没有任何属性的对象
//alert(typeof obj);
var obj1={x:1,y:2,z:3};
var obj2={
'x':1,
"y":2,
username:'king',
'for':'Javascript关键字必须放到引号之间',
'first-name':'queen',
married:true,
test:null,
test1:undefined,
salary:12.3,
person:{
username:'king',
age:12,
addr:'北京'
}
};
2. 通过new Object()创建对象
var obj3=new Object(); //创建一个空对象,{}
var arr=new Array(); //空数组,[]
var date=new Date(); //日期时间对象
var reg=new RegExp('js'); //创建正则对象
3. 通过构造函数的形式创建对象
function Test(){
}
var obj4=new Test();
function Test1(num1,num2){
this.n1=num1;
this.n2=num2;
}
4. 通过Object.create()创建对象
var obj6=Object.create({x:1});
var obj7=Object.create(null);
//创建一个普通的空对象
var obj8=Object.create(Object.prototype);
var person={
username:'king',
age:12,
salary:1234.56,
addr:'北京',
sex:'男',
};
查询属性,对象.属性名/对象["属性名"]
console.log('用户名为:'+person.username+" "+'性别:'+person.sex);
如果属性不确定需要使用[ ]
console.log(person[key]);
添加属性
var obj={}; //空对象
obj.username='king';
obj.age=12;
obj.addr='北京';
obj['test']='this is a test';
console.log(obj.username+'
'+obj.age+'
'+obj.addr+'
'+obj['test']);
修改指定属性
obj.username='queen';
obj['test']='ymt';
console.log('修改之后的名字'+obj.username);
console.log(obj['test']);
通过delete删除指定属性
delete obj['test'];
console.log(obj['test']);
delete obj.username;
console.log(obj['username']);
通过for / in遍历属性
var obj1={
x:1,
y:2,
test:'this is a test',
edu:'ymt'
};
for(var p in obj1){
console.log(p+'
');
}