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访问外部函数的属性

  • 构造器调用模式

转载于:https://www.cnblogs.com/cenzhongman/p/6783782.html

javaScripct入门教程相关推荐

  1. Kafka入门教程与详解

    1 Kafka入门教程 1.1 消息队列(Message Queue) Message Queue消息传送系统提供传送服务.消息传送依赖于大量支持组件,这些组件负责处理连接服务.消息的路由和传送.持久 ...

  2. 【CV】Pytorch一小时入门教程-代码详解

    目录 一.关键部分代码分解 1.定义网络 2.损失函数(代价函数) 3.更新权值 二.训练完整的分类器 1.数据处理 2. 训练模型(代码详解) CPU训练 GPU训练 CPU版本与GPU版本代码区别 ...

  3. python tornado教程_Tornado 简单入门教程(零)——准备工作

    前言: 这两天在学着用Python + Tornado +MongoDB来做Web开发(哈哈哈这个词好高端).学的过程中查阅了无数资料,也收获了一些经验,所以希望总结出一份简易入门教程供初学者参考.完 ...

  4. python向量计算库教程_NumPy库入门教程:基础知识总结

    原标题:NumPy库入门教程:基础知识总结 视学算法 | 作者 知乎专栏 | 来源 numpy可以说是 Python运用于人工智能和科学计算的一个重要基础,近段时间恰好学习了numpy,pandas, ...

  5. mysql query browswer_MySQL数据库新特性之存储过程入门教程

    MySQL数据库新特性之存储过程入门教程 在MySQL 5中,终于引入了存储过程这一新特性,这将大大增强MYSQL的数据库处理能力.在本文中将指导读者快速掌握MySQL 5的存储过程的基本知识,带领用 ...

  6. python tensorflow教程_TensorFlow入门教程TensorFlow 基本使用T

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 TensorFlow入门教程 TensorFlow 基本使用 TensorFlow官方中文教程 TensorFlow 的特点: 使用图 (graph) 来 ...

  7. air调用java,AIR2.0入门教程:与Java应用交互

    在之前的一篇文章中,我介绍了如何使用AIR2.0新增的NativeProcess类与本地进程进行交互和通讯,在那个例子里面我们使用了C++ 的代码,实际上只要是基于命令行的标准输入输出,AIR2.0的 ...

  8. 【Arduino】开发入门教程【一】什么是Arduino

    Arduino Arduino 是一款便捷灵活.方便上手的开源电子原型平台,包含硬件(各种型号的arduino板)和软件(arduino IDE).它适用于艺术家.设计师.爱好者和对于"互动 ...

  9. python 三分钟入门_Cython 三分钟入门教程

    作者:perrygeo 译者:赖勇浩(http://laiyonghao.com) 原文:http://www.perrygeo.net/wordpress/?p=116 我最喜欢的是Python,它 ...

最新文章

  1. 8种方案解决重复提交问题!
  2. 理解 TCP(二):报文结构
  3. VUE中让由全局变量添加生成的新数组不随全局变量的变化而变化
  4. 全球及中国虚拟厨房(仅限外卖的餐厅)行业运营模式分析及发展规划建议研究报告2021-2027年版
  5. leetcode 331. Verify Preorder Serialization of a Binary Tree | 331. 验证二叉树的前序序列化(栈解法)
  6. 【性能优化】优化笔记之一:图像RGB与YUV转换优化
  7. 优迈系统服务器初始化,优迈系统手机操作器服务器操作使用说明.pptx
  8. jooq 配置oracle_jOOQ配置
  9. (22)FPGA面试技能提升篇(MicroBlaze、PowerPC)
  10. C#常用操作类库一(验证类)
  11. 转载:vc6.0 打开文件的时候出现Microsoft Visual C++:MSDEV.EXE 应用程序错误
  12. gimp中文版教程_Gimp中文经典入门实用教程(合辑).pdf
  13. 根据url链接来下载资源
  14. 极品飞车最高通缉Ps2的秘籍
  15. 心理学推荐书籍——《九型人格》
  16. 将自己的图片做成cityscape格式(自用)
  17. 计算机连接小米usb驱动,小米手机USB驱动电脑版
  18. WMB专题之ESQL
  19. pytorch-psenet实现 并训练自己的数据集
  20. 乘法逆元 java_乘法逆元的求法(5种)

热门文章

  1. 《恋上数据结构第1季》二叉树基础、真二叉树、满二叉树、完全二叉树、二叉树的遍历(重点)
  2. java语言的命题原则_重庆自考《Java语言程序设计(一)》课程全国统一命题考试说明...
  3. 那个准点下班的人,比我先升职了...
  4. IT技术 VS IT管理!为什么国内大公司都看不起搞技术的?
  5. docker基础学习中遇到的一些问题
  6. python install pip 区别_pip install和python -m pip install有什么区别?
  7. limit mysql 取最后_更优美的 limit 使用方法 (limit 对 mysql 数据查询的性能影响)
  8. python导入数据画折线图_Python读取Excel表格,并同时画折线图和柱状图的方法
  9. android js交互 数组,Android WebView —— Java 与 JavaScript 交互总结
  10. ubuntu 16.04 官网版安装 caffe 步骤详解[CPU][紧跟官网,永不踩坑]