关键字:

变量:

function test(){
message = 'hi'; //不加var,表示全局变量;加var,表示局部变量
}

数据类型:

总共有五种基本数据类型:Undefined、Null、Boolean、Number、String,一种复杂数据类型:Object。

  • typeof 操作符,对一个值使用typeof会返回下列某个字符串:

"undefined","boolean","string","number","object","function".

下面例子弹出"string"。

var message="hello world";
alert(typeof message);
  • Undefined类型:该类型只有一个值:undefined。下面例子返回true:
var message;//未赋值
alert(message == undefined);

执行alert(typeof message);会弹出"undefined"。

  • Null类型:该类型只有一个值:null。
  • Boolean类型:只有两个字面值:true、false。使用Boolean将一个值转换为对应的Boolean值,比如,下面例子弹出true:
var message="Hello World";
alert(Boolean(message));

下面是这种转换的一个用途:

var message="hello world";
if(message){
alert("你好");
}
  • Number类型:

浮点数值例子:0.1+0.2=?答案是:0.3000000000004,原因:浮点数值计算会产生舍入误差。

NaN:即not a number,0除以0会返回NaN。

NaN与任何值都不相等,包括它自身,即:NaN != NaN;

不能转换为数值的参数使用isNaN()函数,返回true。比如:

alert(isNaN(10));//false;
alert(isNaN('10'))//false;
alert("hello");//true;

数值转换:

var num1=Number("hello world");  //NaN;
var num2=Number("");//
var num3=Number("000011");//
var num4=Number(true);//

Number()不常用,更常用:parseInt();

  • String类型:

字符字面量:

String()转换:

var value1=10;
var value2=true;
var value3=null;
var value4;
alert(String(value1));//"10"
alert(String(value2));//"true"
alert(String(value3));//"null"
alert(String(value4));//"undefined"
  • Object类型:

javascript的对象表示一组数据和功能的集合。

创建对象的方法:

var o = new Object();

Object的属性和方法:

  contructor:保存着用于创建当前对象的函数。

  hasOwnProperty(name):用于检查给定的属性在当前对象实例中是否存在。

  isProtoTypeOf(object):用以检查传入对象是否是当前对象的原型。

  propertyIsEnumerable(propertyName):检查给定的属性是否可用for-in遍历。

  toLocaleString()、toString()、valueOf().

操作符:

在应用于对象时:

var o = {

    valueOf : function(){
return -1;
} ; o--;

语句:

  if、do-while、while、for:略。

for-in举例:

for(var propName in window){
document.write(propName);
}

对象的属性没有顺序,遍历时没有先后。

break+label;continue+label:

var num = 0;

        outermost:
for (var i=0; i < 10; i++) {
for (var j=0; j < 10; j++) {
if (i == 5 && j == 5) {
break outermost;//跳出outermost循环。
} num++; } } alert(num); //
var num = 0;

        outermost:
for (var i=0; i < 10; i++) {
for (var j=0; j < 10; j++) {
if (i == 5 && j == 5) {
continue outermost;//继续outermost循环,而不是继续里面的循环;
}
num++;
}
} alert(num); //

with语句(把重复的对象名称提出来,简化编程):

  with(location){
var qs = search.substring(1);
var hostName = hostname; //unavailable when viewing from a local file
var url = href;
} alert(qs);
alert(hostName);
alert(url);

switch语句:

不限定为数值,非数值甚至表达式都可用:

 switch ("hello world") {
case "hello" + " world":
alert("Greeting was found.");
break;
case "goodbye":
alert("Closing was found.");
break;
default:
alert("Unexpected message was found.");
}
var num = 25;
switch (true) {
case num < 0:
alert("Less than 0.");
break;
case num >= 0 && num <= 10:
alert("Between 0 and 10.");
break;
case num > 10 && num <= 20:
alert("Between 10 and 20.");
break;
default:
alert("More than 20.");
}

函数:

参数在内部是用一个数组来表示的。在函数体内,可以通过arguments对象来访问这个数组:

   alertArguments('hi');
alertArguments('hi','hello');
function alertArguments(){
alert('i receive '+arguments.length+' arguments.'); }

结果:先弹出接收到1个参数,再弹出接收到2个参数。

因为这个原因,javascript函数没有重载。

javascript笔记1-基本概念的更多相关文章

  1. JavaScript:学习笔记(2)——基本概念与数据类型

    JavaScript:学习笔记(2)——基本概念与数据类型 语法 1.区分大小写.Test 和 test 是完全不同的两个变量. 2.语句最好以分号结束,也就是说不以分号结束也可以. 变量 1.JS的 ...

  2. Javascript高级程序设计——基本概念(一)

    一.语法 EMCA-262通过叫做ECMAScript的“伪语言”为我们描述了javascript实现的基本概念 javascript借鉴了C的语法,区分大小写,标示符以字母.下划线.或美元符号($) ...

  3. [Effective JavaScript 笔记] 第4条:原始类型优于封闭对象

    js有5种原始值类型:布尔值.数字.字符串.null和undefined. 用typeof检测一下: typeof true; //"boolean" typeof 2; //&q ...

  4. [Effective JavaScript 笔记] 第5条:避免对混合类型使用==运算符

    “1.0e0”=={valueOf:function(){return true;}} 是值是多少? 这两个完全不同的值使用==运算符是相等的.为什么呢?请看<[Effective JavaSc ...

  5. [Effective JavaScript 笔记]第3章:使用函数--个人总结

    前言 这一章把平时会用到,但不会深究的知识点,分开细化地讲解了.里面很多内容在高3等基础内容里,也有很多讲到.但由于本身书籍的篇幅较大,很容易忽视对应的小知识点.这章里的许多小提示都很有帮助,特别是在 ...

  6. [Effective JavaScript 笔记]第27条:使用闭包而不是字符串来封装代码

    函数是一种将代码作为数据结构存储的便利方式,代码之后可以被执行.这使得富有表现力的高阶函数抽象如map和forEach成为可能.它也是js异步I/O方法的核心.与此同时,也可以将代码表示为字符串的形式 ...

  7. [Effective JavaScript 笔记]第28条:不要信赖函数对象的toString方法

    js函数有一个非凡的特性,即将其源代码重现为字符串的能力. (function(x){ return x+1 }).toString();//"function (x){ return x+ ...

  8. 从头开始学JavaScript 笔记(一)——基础中的基础

    原文:从头开始学JavaScript 笔记(一)--基础中的基础 概要:javascript的组成. 各个组成部分的作用 . 一.javascript的组成   javascript   ECMASc ...

  9. 【原】javascript笔记之Array方法forEach&map&filter&some&every&reduce&reduceRight

    做前端有多年了,看过不少技术文章,学了新的技术,但更新迭代快的大前端,庞大的知识库,很多学过就忘记了,特别在项目紧急的条件下,哪怕心中隐隐约约有学过一个方法,但会下意识的使用旧的方法去解决,多年前ES ...

随机推荐

  1. jQuery图片延迟加载插件jQuery.lazyload使用方法(转)

    使用方法 1.引用jquery和jquery.lazyload.js到你的页面 <script src="jquery-1.11.0.min.js"></scri ...

  2. echarts折线图--数据交互

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  3. Android EditText 获得输入焦点 以及requestfocus()失效的问题

    最近做公司项目的时候,经常会遇到一个问题,就是我为某个控件如EditText设置requestfocus()的时候不管用,比如说登陆的时候,我判断下用户输入的密码,如果正确就登陆,错误就提示密码错误, ...

  4. Android利用V4包中的SwipeRefreshLayout实现上拉加载

    基本原理 上拉加载或者说滚动到底部时自动加载,都是通过判断是否滚动到了ListView或者其他View的底部,然后触发相应的操作,这里我们以 ListView来说明.因此我们需要在监听ListView ...

  5. Qt之事件系统

    简述 在Qt中,事件就是对象,派生自QEvent抽象类,用来表示在应用程序中发生的事件,或是应用程序需要处理的外部活动产生的事件. Events可以被任何QObject派生的子类实例对象接收和处理,但 ...

  6. NT内存

    在NT/2K/XP中,操作系统利用虚拟内存管理技术来维护地址空间映像,每个进程分配一个4GB的虚拟地址空间.运行在用户态的应用程序,不能直接访问物理内存地址:而运行在核心态的驱动程序,能将虚拟地址空间 ...

  7. UNIX高级环境编程学习

    1-5实例 控制字符:ctrl + 另一个键.control + D或者^D是默认的文件结束符(EOF字符).

  8. 张艾迪(创始人):发明Global.World.224C的天才

    Eidyzhang: Genius.Founder.CEO.23 I 世界级最高级创始人.世界最高级FounderCEO 出生在亚洲中国.Eidyzhang 拥有黑色头发白色皮肤(20岁)大学辍学生. ...

  9. Extjs jar包问题

    当前使用struts2.23版本,使用用了jsonplugin-0.3x.jar报: com.opensymphony.xwork2.util.TextUtils错. json-lib-2.x.jar ...

  10. http 报文

    HTTP报文详解 HTTP有两种报文:请求报文和响应报文,具体介绍如下 一.HTTP请求报文 先上个图,细细分析 HTTP请求报文主要包括请求行.请求头部以及请求的数据(实体)三部分 请求行(HTTP ...