1. for in 语句
用来遍历对象的属性和方法
1.1 通过动态方式创建的对象
var obj = new Object();
obj.name = "zhanghui";
obj.print = function () {
alert(this.name);
};
for (p in obj) {
alert(p); // name; print
}
1.2 通过类的方式创建的对象
function Father (name) {
this.name1 = name;
this.print1 = function () {
alert("print1(): " + this.name1 + " " + this.name2);
};
}
Father.prototype.name2 = "name2";
Father.prototype.print2 = function () {
alert("print2(): " + this.name1 + " " + this.name2);
};
var f1 = new Father("name1");
for (var p in f1) { // 对一个对象进行遍历.包括Father通过this和prototype赋予的所有属性和方法
alert(p); // name1; print1; name2; print2
}
for (var p in Father) { // 不能使用类名
alert(p); // nothing
}
for (var p in Father.prototype) { // 只包含Father通过prototype赋予的属性和方法
alert(p); // name2; print2
}
2. with语句
其实和java的静态导入差不多
var s = "hello world";
with(s){
alert(toUpperCase());
}
3. switch语句可以判断字符串
var s = "xyz";
switch(s){
case "xyz" :
alert(s);
break;
}
4. delete运算符
删除对象的属性或方法
var obj = new Object();
obj.name = "allei";
obj.print = function () {
alert(this.name);
};
alert(obj.name);
alert(obj.print); // 打印函数体
delete obj.name;
alert(obj.name); // undefined
delete obj.print;
alert(obj.print); // undefined
5. 变量可以不用先声明即可使用,不过不建议这么做,程序可读性不好
var s1 = "abc";
s2 = s1 + "xyz";
alert(s2); // abcxyz
6. typeof运算符
// 下面几个变量存放在栈中
var s = "abc";
var b = false;
var f = 1.2;
var i = 100;
var u;
alert("typeof(s): " + typeof(s) + "\n" + // string
"typeof(b): " + typeof(b) + "\n" + // boolean
"typeof(f): " + typeof(f) + "\n" + // number
"typeof(i): " + typeof(i) + "\n" + // number
"typeof(u): " + typeof(u) + "\n"); // undefined
// 下面几个变量存放在堆中
s = new String("abc");
b = new Boolean(false);
f = new Number(1.2);
i = new Number(100);
var o = new Object();
var date = new Date();
var myfun1 = new Function ();
var myfun2 = function () {}
alert("typeof(s): " + typeof(s) + "\n" + // object
"typeof(b): " + typeof(b) + "\n" + // object
"typeof(f): " + typeof(f) + "\n" + // object
"typeof(i): " + typeof(i) + "\n" + // object
"typeof(o): " + typeof(o) + "\n" + // object
"typeof(date): " + typeof(date) + "\n" + // object
"typeof(myfun1): " + typeof(myfun1) + "\n" + // function
"typeof(myfun2): " + typeof(myfun2) + "\n" // function
);
7. 基本类型和引用类型
JS的变量要么放在栈中,要么放在堆中。放在栈中的是基本类型,放在堆中的是引用类型(引用本身存放在栈中,类似于c++的指针)。
为变量赋值时,JS引擎必须判断该值是原始类型还是引用类型。
基本类型5种:Null,Undefined,Boolean,Number,String,存放在栈(stack)中。
8. undefined
表示变量已经定义,当尚未初始化。
// undefined 从null派生而来
alert(null == undefined); // true
// 当函数无明确返回值时,实际上返回undefined
function fun6 () {
return;
}
function fun7() {
// nothing
}
alert(typeof fun6()); // undefined
alert(typeof fun7()); // undefined
alert(fun6() == undefined); // true
alert(fun7() == undefined); // true
9.函数
JS里面的函数,你可以把它当做普通的函数,定义,然后调用;也可以把他看做一个构造函数,然后尽情的使用this.xxx。
// 1
function fun (userName, password) {
alert(userName + " " + password);
}
//fun("allei", "123456");
// 2
var fun2 = new Function ("userName", "password", "alert(userName + \" \" + password);") ;
//fun2("allei", "123456");
// 3
var fun3 = function (userName, password) {
alert(userName + " " + password);
};
//fun3("allei", "123456");
// 4.arguments对象
function fun4 (userName, password) {
alert(arguments.length);
}
//fun4("allei", "123456");
// 调用函数时参数的个数和函数定义的个数可以不同。多的会被忽略,少得会填以undefined
function fun5 (userName, password) {
alert(userName + " " + password + " " + arguments[2]);
}
//fun5("allei", "123456", "the 3rd argument");
//fun5("allei"); // "allei undefined undefined"
// 5. length属性,表示定义的参数个数,不是实际调用时传递的参数个数
//alert(fun5.length);
分享到:
相关推荐
通过使用 getElementById() 和 getElementsByTagName() 方法 通过使用一个元素节点的 parentNode、firstChild 以及 lastChild 属性 有两种特殊的文档属性可用来访问根节点: document.documentElement document.body
1、call call 方法 调用一个对象的一个方法,以另一个对象替换当前对象。 call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 参数 thisObj 可选项。将被用作当前对象的对象。 arg1, arg2, , argN 可选项。将被传递方法...
1.index.js [javascript] view plain copy //index.js //获取应用实例 var app = getApp() const AV = require('../../utils/av-weapp.js'); Page({ data: { tempFilePaths: '' }, onLoad: function () ...
微信小程序开发内测一个月.数据传递的方式很少.经常遇到页面销毁后回传...1.APP.js 我把常用且不会更改的参数放在APP.js的data里面了.在各个page中都可以拿到var app = getApp(); app上就可以拿到存在data中的参数.
思来想去不愿自己的微信小程序是个单机版本.自己又不会写后台.现在借助leancloud可以实现...[javascript] view plain copy AV.init({ appId: 'EJx0NSfY********-gzGzoHsz', appKey: 'FBVPg5G**********T97SNQj',
1.index.js //index.js //获取应用实例 var app = getApp() Page({ data: { date: '2016-11-08', time: '12:00', array: ['中国', '巴西', '日本', '美国'], index: 0, }, onLoad: function () { }, // 点击...
简介此仓库主要是希望记录下自己学习Node.js的点滴,方便以后忘记可以从学习轨迹中Swift上手。目录结构express-src koa2-src koa2-router-src 行动中的js学习笔记express中间件: ://...
主要是为了使自己更加熟练操作DOM,记录自己的点滴,规范自己的代码!希望大家共同进步!
这是本人初次接触Spring Cloud微服务及Docker结合的学习点滴,帮助自己或他人更好地去理解微服务概念及其庞大的组件体系,给予服务开发上的便利,同时结合Docker虚拟化技术进行整合应用的实践过程,以作者初学的角度...
iOS学习资源 <----点开有惊喜 开源项目源码 以下是简阅涉及到的几个关键技术,关键字列出来方便大家大家针对性的看源(NSURLProtocol + NSURLCache + CWObjectCache + SQLite3)视频播放(HTML5 + JavaScript)...
JavaScript设计模式系列 中介者模式 享元模式 代理模式 命令模式 正则表达式学习 常用Linux命令学习 【一周一数据结构与算法系列】 本章导读 温故而知新,查漏补缺,生命不息,学无止境! 翻译 工具配置
因为Jquery 是一个很好的javascript框架,我对他的运用还只是表面的,处于一个初步学习的阶段,所以通过博客记录我学习的点滴,大神可以略过,写此文章希望可以帮到和我一样的初学者,共同分享,共同进步。...
前端学习汇总简介2020年秋招进行到目前,深知自己的基础不够扎实,遂创建了这个仓库,顺便记录一下前端路上的点滴,也羡慕早已拿到大厂offer的同学,自己的路还很长,你我都在路上,加油:flexed_biceps:剑指offer...
learn 接触前端两年 对前端各种知识掌握 零零散散 本库用来 系统的 学习 记录知识的 点滴 加油加油
学习从来都不是一蹴而就的事情,需要每天的点滴积累与沉淀,从而由量变引发质变!今日一题:第347题(2020-11-25):算法:js实现将一个二维排列转换成树结构(京东)讨论与参考答案:一周总结讨论与参考答案:讨论...
Asp.net 2.0 WebPart使用经验点滴 革新:.NET 2.0的自定义配置文件体系初探 关于如何在ASP.NET 2.0中定制Expression Builders 怎么在ASP.NET 2.0中使用Membership asp.net 2.0-实现数据访问(1) ASP.NET 2.0 新...
该项目创建于2017.1.10,之后就放弃更新,因此学习价值有限。 现本人有意愿深入学习微信小程序,故决定开发一个小商店微信小程序练习。有需要共同学习微信小程序的朋友请转向 (包含服务器端代码和数据库)。 功能 ...
1. **前端**:采用HTML、CSS和JavaScript等现代Web技术,构建用户友好的界面和交互逻辑。 2. **后端**:使用ASP(Active Server Pages)作为服务器端脚本语言,结合SQL Server数据库,实现数据的存储和检索。 3. **...