1.var 变量

 <script type="text/javascript">
var a = "hong";
var fun = function () {
var a = "aa";
console.log(a);
}
console.log(a); //hong
fun(); //aa
</script>

有局部变量与全局变量同名,在方法内优先使用局部变量

 <script type="text/javascript">
var a = "hong";
var fun = function () {
a = "aa";
console.log(a);
}
console.log(a); //hong
fun(); //aa
console.log(a); //aa
</script>

可以看出在方法中对全局变量进行了修改

 <script type="text/javascript">
var fun = function () {
a = "aa";
console.log(a);
}
// console.log(a); //hong
fun(); //aa
console.log(a); //aa
</script>

在这里a没有var修饰,它是隐式的全局变量

<script type="text/javascript">
var a = "hongda";
function fun() {
console.log(a);
var a = "aaa";
console.log(a);
}
fun(); //undefined aaa
</script>

在这里要注意var的声明,在方法内部不管在什么地方声明,都跟它们在函数的顶部声明一样

  function fun() {
var a = b = c = ; //这样错误,b,c都是隐式的全局变量了
var aa, bb,
cc = "hongda",
dd = ; //这样是好的
}

查看全局变量与隐式全局变量

 <script type="text/javascript">
var a = "hongda";
b = "bb";
console.log(a); //hongda
console.log(b); //bb
delete (a);
delete (b);
console.log(a); //hongda
console.log(b); //b不存在了,已经被删除了
</script>

在技术上,隐式全局变量并不是真正的全局变量,但它们是全局对象的属性。属性是可以通过delete操作符删除的,而全局变量是不能的,但全局变量也是window的属性

为什么隐式全局变量可以被删除,而全局变量不可以被删除?

 <script type="text/javascript">
function f() {
this.aa = "hongda";
}
f.prototype.bb = "bb";
var ff = new f();
console.dir(ff);
delete (ff.aa);
delete (ff.bb);
console.dir(ff);
</script>

可以发现函数内部的aa被删除了

隐式全局变量可以被删除是不是这样的关系,我也不清楚?

js函数的声明:

  function fun() {
console.log("fun");
console.log(typeof fun);
} var f = function () {
console.log("fun2");
} var f2 = function fu() {
console.log("fun3");
console.log(typeof fu);
}
fun();
f();
f2();
console.log(typeof fu);

大概就是这样的三种方式,

第一种,直接声明一个函数

第二种,先声明一个变量f,再声明一个匿名函数,将匿名函数赋值给变量f,赋值以后f的类型才为function

第三种,先声明一个变量f2,再声明一个函数fu,只是这个fu只能在该函数的内部使用,不能在外部使用

2.for循环

<script type="text/javascript">
var array = [, , , , , , , , ];
for (var i = ; i < array.length; i++) {
console.log(i + ":" + array[i]);
}
var obj = { name: "hongda",
age: ,
country: "china",
say:function(){alert("fd");}
}
for (var o in obj) {
console.log(o + ":" + obj[o]);
}
for (var i in array) {
console.log(i + ":" + array[i]);
}
</script>

一般应用时,使用for in 遍历对象内部的属性,使用for()来遍历数组,for in 也可以用来遍历数组,因为数组也是个对象,但for in 遍历对象属性是不一定是顺序的,所以数组还是使用for()好

3.hasOwnProperty

就是去除对象内部从相对应的prototype中获取的属性

http://www.cnblogs.com/hh54188/archive/2013/05/12/3074358.html

http://www.cnblogs.com/TomXu/archive/2011/12/28/2286877.html

JavaScript 小知识的更多相关文章

  1. JavaScript小知识

    1.<script>标签的出现使整个页面因脚本解析.运行而出现等待: 2.合并脚本,每个 HTTP请求都会产生额外的性能负担,下载一 个 100KB 的文件比下载四个 25KB的文件要快: ...

  2. javascript小知识1 this的用法

    函数的应用: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...

  3. Javascript基础知识总结一

    Javascript基础知识总结一 <!DOCTYPE html> <html> <head lang="en"> <meta chars ...

  4. 学习javascript基础知识系列第三节 - ()()用法

    总目录:通过一段代码学习javascript基础知识系列 注意: 为了便于执行和演示,建议使用chrome浏览器,按F12,然后按Esc(或手动选择)打开console,在console进行执行和演示 ...

  5. s性能优化方面的小知识

    总结的js性能优化方面的小知识 前言 一直在学习javascript,也有看过<犀利开发Jquery内核详解与实践>,对这本书的评价只有两个字犀利,可能是对javascript理解的还不够 ...

  6. javascript常用知识点集

    javascript常用知识点集 目录结构 一.jquery源码中常见知识点 二.javascript中原型链常见的知识点 三.常用的方法集知识点 一.jquery源码中常见的知识点 1.string ...

  7. 七个开法者经常忽略或误用的JavaScript基本知识

    七个开法者经常忽略或误用的JavaScript基本知识 翻译自 http://tech.pro/tutorial/1453/7-javascript-basics-many-developers-ar ...

  8. JS的基本类型(小知识)

    一:js中的基本类型: 基本类型:boolen, string ,number,null,undefined 引用类型:object,和函数 二.undedifned和null的区别: 1 undef ...

  9. JS控制语句 编程练习 学生数据,分别是姓名、性别、年龄和年级,接下来呢,我们要利用JavaScript的知识挑出其中所有是大一的女生的的名字哦。

    编程练习 在一个大学的编程选修课班里,我们得到了一组参加该班级的学生数据,分别是姓名.性别.年龄和年级,接下来呢,我们要利用JavaScript的知识挑出其中所有是大一的女生的的名字哦. 学生信息如下 ...

随机推荐

  1. QS Network---zoj1586最小生成树

    Description Sunny Cup 2003 - Preliminary Round April 20th, 12:00 - 17:00 Problem E: QS Network In th ...

  2. vueawesomeswiper自定义 导航点

    1,pagination的配置 pagination: { el: '.swiper-paginationfull', // type:'bullets', // bulletElement : 's ...

  3. FS Shell命令手册

    1.       FS Shell 1.1     简介 调用文件系统(FS)Shell命令应使用 bin/hadoop fs <args>的形式. 所有的的FS shell命令使用URI ...

  4. [MySQL 5.6] MySQL 5.6 group commit 性能测试及内部实现流程

    [MySQL 5.6] MySQL 5.6 group commit 性能测试及内部实现流程 http://mysqllover.com/?p=581 尽管Mariadb以及Facebook在long ...

  5. Input的类型(type)

    HTML5 新的 Input 类型 HTML5 拥有多个新的表单输入类型.这些新特性提供了更好的输入控制和验证. 本章全面介绍这些新的输入类型: color date datetime datetim ...

  6. idea安装插件

    方法1:file>settings>pulgins>browse repositories>输入要安装的插件>install 方法2:本地安装,如果在browse中没有找 ...

  7. 查看Django和flask版本

    查看Django版本 检查是否安装成功,可以在dos下查看Django版本. 1.输入python 2.输入import django 3.输入django.get_version() 1 2 3 4 ...

  8. Kettle定时抽取两个库中的两个表到目标库SYS_OPLOG表

     A库a表(红色为抽取字段): 关联用户表: B库b表(红色为抽取字段): 关联用户表  C目标库SYS_OPLOG表(c表) 利用kettle抽取A库a表(具体名称见上图),B库b表的上面红色框起来 ...

  9. tf.nn.embedding_lookup函数的用法

    关于np.random.RandomState.np.random.rand.np.random.random.np.random_sample参考https://blog.csdn.net/lanc ...

  10. postman返回参数的截取

    同事在使用postman接口测试的时候,遇到这么一个问题,在一个参数里面,返回了一个类似数组的参数,如下: 然后现在需要把数组里面的两个参数分别保存到环境变量里面: 个人的想法是通过截取的方式进行数组 ...