js 学习笔记---基本概念
早已接触javascript多年之后,竟然还有这些概念混淆不清,毫不知情,说出来真实无地自容 !
1、使用严格模式,“use strict”,虽然不适用,但是要知道,以免别人使用时,碰到后摸不着头脑!
2、js只有五中基本类型和一种复杂类型,Undefined,String,Number,Boolean,Null 和Object。typeof 返回的都是小写类型,e.g: j null == 'object'
3、var 声明变量未初始化时,变量就是undefined。 null 是一个指向空对象的指针。所以,typeof null = 'object'. 但是undefined派生自null。 null==undefined 是true
5、Object是所有对象的基础,每个对象都具有下列属性和方法:constructor,hasOwnProperty(propertyName)-是否存在某属性,isPrototypeOf(object)-检查传入的对象是否是对象的原型,propertyIsEnumerable(propertyName)-用于检查给定的属性是否能够使用for-in来枚举,toLocaleString(),toString(),valueOf()等。
6、理解参数问题:函数的参数是通过一个参数数组来接收参数的arguments。函数的定义和调用的时候,参数没什么关系,如果定义时写了参数就是可以显示的使用参数。否则,通过arguments[0],arguments[1]等依然可以实现相同的效果。调用时参数传递不够的,后面的自动赋值为undefined。如果多传递的可以通过下标访问arguments获得。还有重要的一点就是:arguments的值始终与对应命名参数的值保持同步,即可以通过改变arguments里的值,修改传递进来的参数值。
测试代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head> <body>
<script type="text/javascript" language="javascript">
var testUndefined;
alert(testUndefined);
alert(testUndefined == null);
alert(typeof null);
alert(typeof undefined);
var obj = {};
obj.name = 'wch';
obj.pwd =132;
alert(obj.hasOwnProperty('name')+":"+obj.hasOwnProperty('id'));
alert(obj.toString()+" : "+obj.valueOf()+' : '+obj.toLocaleString());
alert(obj.propertyIsEnumerable('name')+' : '+obj.propertyIsEnumerable('pwd'));
function sum(){
var sum = 0;
for(var i=0; i< arguments.length; i++){
if(i==3){
arguments[3] = 10;
}
sum+=arguments[i];
}
return sum;
}
alert(sum(1,2,3)+' : '+sum(10,20,30,60));
</script>
</body>
</html>
js 学习笔记---基本概念的更多相关文章
- js学习笔记14----DOM概念及子节点类型
1.概念 DOM:Document Object Model---文档对象模型 文档:html页面 文档对象:页面中的元素 文档对象模型:是一种定义,为了能够让程序(js)去操作页面中的元素. DOM ...
- JS 学习笔记--9---变量-作用域-内存相关
JS 中变量和其它语言中变量最大的区别就是,JS 是松散型语言,决定了它只是在某一个特定时间保存某一特定的值的一个名字而已.由于在定义变量的时候不需要显示规定必须保存某种类型的值,故变量的值以及保存的 ...
- jQuery学习笔记之概念(1)
jQuery学习笔记之概念(1) ----------------------学习目录-------------------- 1.概念 2.特点 3.选择器 4.DOM操作 5.事件 6.jQuer ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- Vue.js学习笔记(2)vue-router
vue中vue-router的使用:
- Oracle RAC学习笔记:基本概念及入门
Oracle RAC学习笔记:基本概念及入门 2010年04月19日 10:39 来源:书童的博客 作者:书童 编辑:晓熊 [技术开发 技术文章] oracle 10g real applica ...
- Java IO学习笔记:概念与原理
Java IO学习笔记:概念与原理 一.概念 Java中对文件的操作是以流的方式进行的.流是Java内存中的一组有序数据序列.Java将数据从源(文件.内存.键盘.网络)读入到内存 中,形成了 ...
- WebGL three.js学习笔记 使用粒子系统模拟时空隧道(虫洞)
WebGL three.js学习笔记 使用粒子系统模拟时空隧道 本例的运行结果如图: 时空隧道demo演示 Demo地址:https://nsytsqdtn.github.io/demo/sprite ...
- WebGL three.js学习笔记 法向量网格材质MeshNormalMaterial的介绍和创建360度全景天空盒的方法
WebGL学习----Three.js学习笔记(5) 点击查看demo演示 Demo地址:https://nsytsqdtn.github.io/demo/360/360 简单网格材质 MeshNor ...
随机推荐
- hdu3450
分析:首先要知道有递推公式dp[i] = Sigma(dp[j]),dp[i]表示第i个数结尾的完美子序列的个数,|a[i] - a[j]| <= d,j<i.直接这样做的时间复杂度为n^ ...
- iOS消息推送原理和实现总结
一.消息推送原理: 在实现消息推送之前先提及几个于推送相关概念,如下图:1. Provider:就是为指定IOS设备应用程序提供Push的服务器,(如果IOS设备的应用程序是客户端的话,那么Provi ...
- 多Tabs的横向滚动插件(支持Zepto和jQuery)
一. 效果图 二. 功能介绍 1. 支持横向移动 2. 支持点击Tab后该Tab居中 3. 拉到最左边和最右边后依然可以拉动,只是tabs的移动距离变小. 三. 使用说明 1. 在你的html中添加T ...
- symfony2笔记
路由可以在全局定义,也可以在单个bundle内部定义 全局定义:app/config/routing.yml 局部bundle定义:src/Miyaye/webBundle/Resources/con ...
- python 元组不变 列表可变
python 元组不变 列表可变 1, --元组,注意要有逗号: [1] --列表 竟然才开始写python blog:
- Android SnackBar:你值得拥有的信息提示控件
概述: Snackbar提供了一个介于Toast和AlertDialog之间轻量级控件,它能够非常方便的提供消息的提示和动作反馈. 有时我们想这样一种控件.我们想他能够想Toast一样显示完毕便能够消 ...
- ACdream 1125(ACfun-字典序)
A - ACfun Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) SubmitSta ...
- Android对方向感应器的封装调用
Android自动的SensorManager使用起来已经很方便,但由于一些情况我们希望对其中的功能进行封装: 只使用个别的sensor,功能相对单一 要对sensor返回的raw data进行算法处 ...
- C++链表冒泡,归并,插入排序(纯指针)
#include <iostream> using namespace std; //别问我为什么要写链表的冒泡排序. struct Node { int data; Node *next ...
- Android中关于横竖屏问题
一.屏幕的方向可以在AndroidManifest.xml文件中通过设置screenOrientation属性来实现, screenOrientation用来指定Activity的在设备上显示的方向, ...