10、流程控制语句
注:var obj = {};这里的obj转换boolean语句为true
注:var obj = {};这里的obj转换boolean语句为true
if语句和java是一样的,判断条件也是根据上篇博客提到的假性值
switch条件需要和case匹配值和类型都要相同,另外switch的判断条件可以是String 、Number、Boolean、char、枚举、null、undefined
var value = prompt("请输入。。。"); //输入1 // value的值这里是字符串1,他不能和数字1匹配 // value的值和类型与case后的值和类型必须相等,才能匹配 value = +value; //转换数值类型 switch(value){ case 1: console.log("yi"); break; //case的值类型可以为函数 case (function(){return 2;})(): console.log("er"); break; case 3: console.log("san"); break; case 4: console.log("si"); break; default: alert("没有匹配值") }
for···in循环对象:
obj = { "name": "xiaohu","age":20,"gender": "male",a: "sa" } console.log(obj.name); //xiaohu console.log(obj.a); //sa for(key in obj){ console.log(key+"------"+obj[key]); //name------xiaohu,依次输出 }
11、小技巧:
①var d = new Date().getDate(); ----->d是一个number类型,Sunday=0,Monday=1,Tuesday=2,······
12、创建对象:
1)使用构造函数创建对象并赋值如:
var obj = new Object();
obj.name = "张三";
obj["age"] = 21;
obj.sayHi = function(){};
2)使用字面量创建对象如:
var obj = {
name: "张三",
age: 21,
sayHi: function(){},
}
1)通过 对象名.属性名 来访问如:
console.log(obj.name); //张三
console.log(obj.age); //21
console.log(obj["name"]); //张三
console.log(obj["age"]); //21
obj["gender"] = "男";
console.log(obj["gender"]); //男
for(var key in obj){
//注:
这里就不能使用 . 来访问了,若用点访问,则返回的结果可能是undefined或者是obj对象的key属性名对应的值。
console.log(key,"-----",obj[key]);
}
delete obj.age; 或者 delete obj["age"];
15、对象序列化和反序列化:
序列化JSON.stringify(obj):将js对象数据转换为字符串
console.log(JSON.stringify(obj));
反序列化JSON.parse(str): 将字符串转换技术对象数据
var str = JSON.stringify(obj);
console.log(JSON.parse(str));
console.log(Object.prototype); //{}
console.log(Object.prototype.constructor === Object); //true
var obj = {name: "张三"};
console.log(obj.toString()); //[object Object]
console.log(obj.toString === Object.prototype.toString); //true
console.log(obj.constructor); //[Function: object]
console.log(‘name‘ in obj); //true
console.log(toString‘ in obj); //true
console.log(‘aaa‘ in obj); //false
console.log(obj.hasOwnProperty("name")); //true
console.log(obj.hasOwnProperty("aaa")); //false
3)propertyIsEnumerable() 判断是不是自有属性并且可枚举
console.log(obj.propertyIsEnumerable("name")); //true
console.log(obj.propertyIsEnumerable("toString ")); //false
4)isPrototypeOf()判断 Object.prototype是不是obj的原型对象
console.log(Object.prototype.isPrototypeOf(obj)); //true
17、函数:
1)函数声明:
----> function 函数名(){
函数体
return;
}
-----> var 函数名 = function (){
函数体
return;
}
它们的功能和Java的很相似
匿名函数的使用如:
function(){
console.log("匿名函数");
}
2)函数声明提升和变量名声明提升如:
console.log(one); //undefined
function one(){
console.log("打印函数");
}
var one = 123;
console.log(one); //123
function add(){
var total = 0;
for(var i = 0; i < arguments.length; i++){
total += arguments[i];
}
return total;
}
var result = add(1,2,3,4,5,6,7);
console.log(result); //28
function test(num){
console.log(arguments.callee); //[Function: test]
if(num == 1)
return 1;
else
return num*arguments.callee(num-1);
}
console.log(test(5)); //120
function test(){
console.log(this); //返回 globa l对象
}
在nodeJS环境中返回的是global对象,
在浏览器环境中返回的是window对象
var obj = {
name:‘zhangsan‘,
age: 21,
gender: ‘male‘,
sayHi: function(){
console.log(this); //就会返回{name:‘zhangsan‘,age:21,gender: ‘male‘,sayHi: [Function],}
}
}
obj.sayHi();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。