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. 使用pycharm 运行python的django项目时报错“Quit the server with CTRL-BREAK.”

    Quit the server with CTRL-BREAK.Error: [Errno 10013] 1昨晚测试时还好好的,怎么突然出现这个错误,于是GOOLE,找到个帖子说可能是端口占用了,用工 ...

  2. JavaSE之Java基础(5)

    21.简述正则表达式及其用途. 在编写处理字符串的程序时,经常会有查找符合某些复杂规则的字符串的需要.正则表达式就是用于描述这些规则的工具.换句话说,正则表达式就是记录文本规则的代码. 22.Java ...

  3. hibernate课程 初探单表映射2-5 session详解(上)

    1 本章目的:获得session的两种方式: openSession 和 getCurrentSession 2 两种session的使用方法 1openSession可以直接写,getCurrent ...

  4. 美国绿卡基础知识:I-539和I-129表格的应用回复新帖

    美国绿卡基础知识:I-539和I-129表格的应用 发布于: 2011/07/25  8:43 am 引用     I-539,就是和万金油类似的表格.不管你是要延期,还是转换身份:不管你是 B-2 ...

  5. LeetCode Valid Anagram (简单题)

    题意: 给出两个字符串s和t,判断串t是否为s打乱后的串. 思路: 如果返回的是true,则两个串的长度必定相等,所有字符出现的次数一样.那么可以统计26个字母的次数来解决,复杂度O(n).也可以排序 ...

  6. ubuntu16.4 配置logstash6.3.2 kibanan6.3.2

    1. 官网下载 https://artifacts.elastic.co/downloads/logstash/logstash-6.3.2.tar.gz https://www.elastic.co ...

  7. app再次进入数据不加载问题

    问题原因:触发点击事件在加载页面之前完成. 1.调整了一下页面加载顺序 2.增加了settime的时间

  8. Android中的Matrix(矩阵)

    写在前面 看这篇笔记之前先看一下参考文章,这篇笔记没有系统的讲述矩阵和代码的东西,参考文章写的也有错误的地方,要辨证的看. 如何计算矩阵乘法 android matrix 最全方法详解与进阶(完整篇) ...

  9. sparkSQL中udf的使用

    在Spark中使用sql时一些功能需要自定义方法实现,这时候就可以使用UDF功能来实现 多参数支持 UDF不支持参数*的方式输入多个参数,例如String*,不过可以使用array来解决这个问题. 定 ...

  10. 求和VII

    问题 K: 求和VII 时间限制: 2 Sec  内存限制: 256 MB提交: 422  解决: 53[提交] [状态] [讨论版] [命题人:admin] 题目描述 master对树上的求和非常感 ...