javaScripct入门教程
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包括以下几种:
- false
- null
- NaN
- unDefined
- 空字符串’’
- 0
true包括其他的所有:
- 所有的除0和NaN以外的数字
- 所有的对象
- 所有的字符串包括字符串'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对象检索
检索的方法有两种
- people[“name”]
- 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入门教程的更多相关文章
- wepack+sass+vue 入门教程(三)
十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...
- wepack+sass+vue 入门教程(二)
六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...
- wepack+sass+vue 入门教程(一)
一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...
- Content Security Policy 入门教程
阮一峰文章:Content Security Policy 入门教程
- gulp详细入门教程
本文链接:http://www.ydcss.com/archives/18 gulp详细入门教程 简介: gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:她不仅能对网站资源进行优 ...
- UE4新手引导入门教程
请大家去这个地址下载:file:///D:/UE4%20Doc/虚幻4新手引导入门教程.pdf
- ABP(现代ASP.NET样板开发框架)系列之2、ABP入门教程
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之2.ABP入门教程 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...
- webpack入门教程之初识loader(二)
上一节我们学习了webpack的安装和编译,这一节我们来一起学习webpack的加载器和配置文件. 要想让网页看起来绚丽多彩,那么css就是必不可少的一份子.如果想要在应用中增加一个css文件,那么w ...
- 转载:TypeScript 简介与《TypeScript 中文入门教程》
简介 TypeScript是一种由微软开发的自由和开源的编程语言.它是JavaScript的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程.安德斯·海尔斯伯格,C#的首席架构 ...
随机推荐
- java 基础 03 运算符 分支结构 循环结构
今天内容: (1)运算符 (2)分支结构 (3)循环结构 1运算符 1.1赋值运算符 (1)简单赋值 = 表示赋值运算符,用于将=右边的数据赋值给=左边的变量来覆盖原来的数值. 笔试题: ia == ...
- HTML 5 Web 存储提供了几种存储数据的方法
localstorage存储对象分为两种: 1. sessionStorage: session即会话的意思,在这里的session是指用户浏览某个网站时,从进入网站到关闭网站这个时间段,sessio ...
- MATLAB之易经卜卦程序+GUI
MATLAB之易经卜卦程序+GUI 日月为易,刚柔相推. 是故易有太极,是生两仪,两仪生四象,四象生八卦,八卦定吉凶,吉凶生大业.是故法象莫大乎天地,变通莫大乎四时,悬象著明莫大乎日月. 本文 ...
- Java开发工具IntelliJ IDEA创建Andriod项目示例说明
IntelliJ IDEA社区版作为一个轻量级的Java开发IDE,是一个开箱即用的Android开发工具. 注意:在本次的教程中我们将以Android平台2.2为例进行IntelliJ IDEA的使 ...
- Android 从零开始搭建一个主流项目框架—RxJava2.0+Retrofit2.0+OkHttp
我这里的网络请求是用的装饰者模式去写的,什么是装饰者模式呢?在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能.它是通过创建一个包装对象,也就是装饰来包裹真实的对象.我的理解就是一个接口, ...
- RxJava2 中多种取消订阅 dispose 的方法梳理( 源码分析 )
Github 相关代码: Github地址 一直感觉 RxJava2 的取消订阅有点混乱, 这样也能取消, 那样也能取消, 没能系统起来的感觉就像掉进了盘丝洞, 迷乱… 下面说说这几种情况 几种取消的 ...
- @Enable*注解的工作原理
@EnableAspectJAutoProxy @EnableAsync @EnableScheduling @EnableWebMv @EnableConfigurationProperties @ ...
- python 函数学习之sys.argv[1]
一.sys 模块 sys是Python的一个「标准库」,也就是官方出的「模块」,是「System」的简写,封装了一些系统的信息和接口. 官方的文档参考:https://docs.python.org/ ...
- Payoneer个人账户注册申请教程
1)照牛排于2013年末写的<免费申请Payoneer万事达预付卡+美国银行账号教程>非常详尽,网友纷纷转载,但生命在于折腾,Payoneer官网几经改版,自2015年3月推出无卡账户以来 ...
- 显示 Mac隐藏的文件夹 命令语句
默认情况下,模拟器的目录是隐藏的,要想显示出来,需要在Mac终端输入下面的命令 显示Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFil ...