1.JavaScript环境安装

JavaScript是一个轻量级的编程语言,安装自然很简单。

a.打开你的电脑,找到一个Web浏览器,再找一个文本编辑器(比如记事本)

b.没有了。。。

2.JavaScript中的基本数据类型

2.1数字(number)64位浮点值

js中数字都是用number来表示,不区分整型和浮点型(其实就是浮点型),100.0===100===1e2(===表示恒等)

NaN(not a number)表示一个非数字(如1/0,待测试,Java中是用正无穷大表示,即Double.NEGETIVE_INFINITY),它不等于0,也不等于自己

Infanity表示可表示的最大值===1.79769…e308

数字的方法:Math.floor(number)得到整数

2.2字符串(String)js里面的字符串并不是对象(待求证)

用’’和“ ”都可以表示字符串

没有char类型,只有只含一个字符的字符串

字符串的属性"char”.length ===4;

字符串是有方法的如:'char’.toUpperCase === ‘CAHR’;

2.3boolean

这个跟Java是有很大区别,跟PHP很像

false包括以下几种:

  1. false
  2. null
  3. NaN
  4. unDefined
  5. 空字符串’’
  6. 0

true包括其他的所有:

  1. 所有的除0和NaN以外的数字
  2. 所有的对象
  3. 所有的字符串包括字符串'false'

3.流程控制语句(for while if swich do …)

相同的就不赘述了,说一下不一样的地方

for in语句

for(myVar in obj){//对元素进行循环

if(obj.hasOwnProperty(maVar)){//判断myVar属性是都属于对象

//todo…

}

}

4.对象

4.1对象字面量(定义对象)

在js中的字面量是神奇的,有点像PHP中的数组(js的数组是对象)

对象字面量是一种简单的对象申明方式

var empty_obj = {};//申明了一个空对象

var people = {

“name”:”Tony”,

“age”:”19”,//用逗号分隔属性

id: 17//并不强制要求用引号

friend:{//允许属性嵌套

name:”james”,

phone:12300123

}

};

看到这里你是否觉得似曾相识呢,JSON的创始人说这个东西启发了它创造了JSON

4.2对象检索

检索的方法有两种

  1. people[“name”]
  2. people.friend.name //更推荐这种,更加直观,还支持链式

||字符串用于填充默认值

people.name||”admin”;//如果没有值填入admin

检索不存在的值将会返回undefined

4.3更新对象

people.name = “GOGO”;

4.4原型(父对象)

Object.Prototype是js中的标准对象,和Java的object类最大的不同就是js是对象不基于类(free-clss)的

创建基于原型的新对象(待研究)

注意:原型在更新时候不起作用,只会更新自对象中的属性

在检索时候,子对象中没有属性会去原型中检索,直到祖宗也没有才返回undefined,这个过程叫做委托

4.5反射

获得类型:

typeof people.name                 //”string ”

typeof people.toString            //”function ”

检查元素是否属于对象

people.hasOwnProperty(‘name’);//true

people.hasOwnProperty(‘constructor’);//hasOwmProperty方法不会检查原型链(constructor属性属于原型链)

4.6删除对象

delete people.name;

4.7全局变量

js中非常牛逼的是,变量很随意就是全局的,这样就很容易发生名字冲突问题,解决这个问题的方法是

使用唯一一个全局变量把他们包装起来

var MyApp = {

“app_name”:”langji”,

“time”:20150808

};

5.函数对象(function)

函数也是对象,函数对象的原型是Function.prototype(这个原型的原型也是Object.prototype)

5.1函数字面量(定义函数)

var add = function(a,b){//注意,这里的add是变量名,函数名,函数名在function后面(待考究)被隐藏了

return a+b;

};

对比一下对象字面量

var people = {

//属性

};

值得一提的是函数可以出现在任何地方,函数中可以包含函数,函数出生就包含了上下文(闭包),允许链式调用

5.2函数

的调用

js中函数存在4中调用模式:方法调用模式,函数调用模式,构造器调用模式,apply调用模式,这些模式在如何初始化this上存在区别

  • 方法调用模式

当一个函数被保存为一个对象的属性时,我们称函数为方法,即对象的方法,this绑定该对象

var people={

name : “czm”,

getName : function(){

return this.name;//可以通过this获取上下文属性的方法称为公共方法

}

};

调用: people.getName();

  • 函数调用模式

当函数不属于一个对象时候,它就是一个函数(怎么听起来怪怪的),this绑定全局对象,导致内部函数不能访问外部函数的值(this本该绑定外部函数的this)

解决方法:自定义一个变量that,把外部函数的this赋值给它,内部函数通过that访问外部函数的属性

  • 构造器调用模式

javaScripct入门教程的更多相关文章

  1. wepack+sass+vue 入门教程(三)

    十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...

  2. wepack+sass+vue 入门教程(二)

    六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...

  3. wepack+sass+vue 入门教程(一)

    一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...

  4. Content Security Policy 入门教程

    阮一峰文章:Content Security Policy 入门教程

  5. gulp详细入门教程

    本文链接:http://www.ydcss.com/archives/18 gulp详细入门教程 简介: gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:她不仅能对网站资源进行优 ...

  6. UE4新手引导入门教程

    请大家去这个地址下载:file:///D:/UE4%20Doc/虚幻4新手引导入门教程.pdf

  7. ABP(现代ASP.NET样板开发框架)系列之2、ABP入门教程

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之2.ABP入门教程 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...

  8. webpack入门教程之初识loader(二)

    上一节我们学习了webpack的安装和编译,这一节我们来一起学习webpack的加载器和配置文件. 要想让网页看起来绚丽多彩,那么css就是必不可少的一份子.如果想要在应用中增加一个css文件,那么w ...

  9. 转载:TypeScript 简介与《TypeScript 中文入门教程》

    简介 TypeScript是一种由微软开发的自由和开源的编程语言.它是JavaScript的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程.安德斯·海尔斯伯格,C#的首席架构 ...

随机推荐

  1. springBoot学习 错误记录

    1.下面结果 会出现500错误 原因:thymeleaf相关包版本不兼容导致 解决:之前配置的3.0.9对应2.1.1&2.2.2,3.0.6对应2.2.2&2.1.1都不可以,下面的 ...

  2. Java虚拟机,类文件结构深度解析

    Java类文件结构 Java虚拟机不和包括Java在内的任何语言绑定,只与 "Class文件" 这种特定的二进制文件所关联, Class文件中包含了Java虚拟机指令集合符号表以及 ...

  3. js和jq获取父,兄弟,子节点

    1,js获取节点: 父: parentNode 获取已知节点的父节点. 子: childNodes; 得到全部子节点 children 得到全部子节点 firstChild 获得第一个子节点 last ...

  4. EEC 欧姆龙PLC输入模块算法

        Option Explicit Public MyArray(20000) As Integer Public MyArraySensor(20000) As Integer Sub 生成输入 ...

  5. 《Ruby on Rails教程》学习笔记

    本文是我在阅读 Ruby on Rails 教程的简体中文版时所做的摘录,以及学习时寻找的补充知识.补充知识主要来自于 Ruby on Rails 實戰聖經. Asset Pipeline 在最新版 ...

  6. windows phone 8.0 的网络图片异步加载方案

    买了一本林政的8.1UI的书,看到一个使用弱引用对像来解决图片缓存的问题,刚好自已写的应用也遇到这个问题,于是小改动了一下代码,搬到了8.0版本来使用,代码由 zhxilin℃+ 大神提供了部分解决代 ...

  7. World Wind Java开发之九——阶段小结(转)

    http://blog.csdn.net/giser_whu/article/details/42785875 将近一个月没有更新了,一是因为项目的事情,二是期末考试复习,三是玩啦.上一篇博客搭建起了 ...

  8. signal函数:void (*signal(int,void(*)(int)))(int);

    http://blog.chinaunix.net/uid-20178794-id-1972862.html signal函数:void (*signal(int,void(*)(int)))(int ...

  9. 同余问题(一)——扩展欧几里得exgcd

    前言 扩展欧几里得算法是一个很好的解决同余问题的算法,非常实用. 欧几里得算法 简介 欧几里得算法,又称辗转相除法. 主要用途 求最大公因数\(gcd\). 公式 \(gcd(a,b)=gcd(b,a ...

  10. 设置和重置ssh key

    查看本地是否有已经生成好的ssh key $ cat ~/.ssh/id_rsa.pub 若有,先删除: $ cd ~ $ rm -rf .ssh 重新生成ssh key ssh-keygen -t ...