JavaScript的简单入门
一、导读
简介:JavaScript简称js,是基于对象和事件驱动的脚本语言,主要运用于客户端。原名LiveScript,本身和Java没有任何关系,但语法上很类似。
特点:交互性(它可以做的就是信息的互动性);
安全性(不允许直接访问本地硬盘);
跨平台性(只要是可以解释JS的浏览器都可以执行,与平台无关);
二、JavaScript与Java不同
1、JS是Netscape(网景)公司的产品,前身是LiveScript,Java是Sun公司的产品,现在是Oracle公司的产品。
2、JS是基于对象,Java是面向对象。
3、JS只需要解释就可以执行,Java需要先编译成字节码文件,再执行。
4、JS是弱类型,Java是强类型(每种数据都要规定好类型,而每种数据类型都设定好了空间大小)。
三、JavaScript与Html的结合
方式1:将JavaScript代码封装到<script>标签中
方式2:将JavaScript代码封装到js文件中,并通过<script>中的src属性进行导入。注意:如果<script>标签中使用了src属性,那么该标签的JavaScript代码将不会被执行,所以导入js文件都是单独<script>标签来实现。
四、通常高级程序设计语言所包含的语法内容
关键字:被赋予特殊含义的单词
标识符:用于标识数据表达式的符号。通常理解为在程序中自定义的名称。比如变量名、函数名。
注释:注解说明程序。用于调试程序。
变量:用于标识内存中的一片空间,用于存储数据,该空间中的数据是可变的。(当数据不确定时就可以使用)
运算符:让数据参与运算的符号。
语句:用于对程序的运行流程进行控制的表达式。
函数:用于对功能代码的封装,提高复用性。
数组:对多数据进行存储,便于操作。即容器。
对象:只要是基于对象的语言或面向对象的语言,都存在对象的概念。对象就是一个封装体:既可以封装数据,又可以封装函数。
注:这些都是高级设计语言具备的共性内容,只不过表现形式不同而已。
五、js变量:使用关键字var(variable的简写)来定义变量
由于是弱类型非严谨的语言,所以只需使用“var 变量名 = 变量值”的形式就可以进行变量的申明。
如:
var x = 3;//定义一个变量x,并初始化值为number类型3
x = "abc";//将变量x的值改为string类型
x = 3.45;
x = 'c';
x = true;//布尔类型
js变量的类型没有固定的数据类型,所以称为弱类型。若定义时未定义变量值,则为 undefined类型。
六、运算符
算术运算符:+ - * / % ++ --(加减乘除取余自增自减)
注:和其他语言类似,但由于是弱类型,+、-等运算可以在不同类型之间进行:如
var x = 3;
var y = "abc";
var z1 = x+y;//那么z1的值为“3abc”
var z2 = y+x;//z2的值为“abc3” //false用0或null代表,而非0非空就是true,默认是1,所以可以参与运算。
var t = true;
var f = false;
var w = 3+false;//w就等于3
var q = 3 - true;//q就为2 //.....等等不同类型之间的运算,其实是先转换为同类型再运算。
赋值运算 := 、+=、-=、/=、%=
比较运算符 :<、>、==、<=、>=、!=
逻辑运算符 :&(与运算) 、&& 、|(或运算) 、|| 、 !(非)
位运算符:& 、|、 ^(异或) 、>>(带符号右移) 、<<(左移)、 >>>(无符号右移)
三元运算符:表达式?(true)结果a:(false)结果b;
七、语句&结构
顺序结构
判断结构:if/else语句
选择结构:switch/case语句
循环结构:while语句、for语句
其他语句:
注:可以对循环语句进行标号,以便控制。
八、数组
js的数组时可变长度的,且可以存储不同类型的元素,但建议存储同一类型元素。
方式1:var arr = [1,2,3,5,9]; //数组属于object类型
方式2:使用js中的对象Array对象来完成定义。
var arr = new Array();//等价于var arr = [];
var arr1 = new Array(5);//定义长度为5的数组
var arr2 = new Array(5,6,7);//等价于var arr = [5,6,7];
九、函数
通过关键字来定义。function 函数名(参数列表){
函数体;
return 返回值;(没有返回值就不用写返回语句)
}
如:
function add(x,y){
var z = x + y;
return z;
}
细节:1、定义几个实参就传递几个参数。2、函数中传入的参数其实是用一个数组存储起来了:arguments.3、函数本身是一个对象,而函数名就是这个函数对象的引用(打印出来不是地址值,而是该函数的代码体)。
十、动态函数
其实使用的是js内置的一个对象Function.
var add = new Function("x,y","var sum;sum=x+y;return sum;");
var x = add(7,8);
与一般函数的区别在于,动态函数的参数列表和函数体都是通过字符串指定的,可以通过改变字符串来改变函数的定义,但实际用得并不多。
十一、匿名函数
没有名字的函数,函数的简写形式。如:
var add = function(a,b){
return a+b;
}
JavaScript的简单入门的更多相关文章
- javascript正则简单入门
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- JavaScript简单入门(补充篇)
本文是对上一篇 JavaScript简单入门 的一些细节补充. 一.全局变量和局部变量 在<script>标签内定义的变量是当前页面中的全局变量.即 <script>标签可以直 ...
- JavaScript 10分钟入门
JavaScript 10分钟入门 随着公司内部技术分享(JS进阶)投票的失利,先译一篇不错的JS入门博文,方便不太了解JS的童鞋快速学习和掌握这门神奇的语言. 以下为译文,原文地址:http://w ...
- JavaScript面向对象轻松入门之封装(demo by ES5、ES6、TypeScript)
本章默认大家已经看过作者的前一篇文章 <JavaScript面向对象轻松入门之抽象> 为什么要封装? 封装(Encapsulation)就是把对象的内部属性和方法隐藏起来,外部代码访问该对 ...
- HCharts随笔之简单入门
此处可以对比我的另一个Echars简单入门 直接上源码 <!DOCTYPE html> <html> <head> <meta http-equiv=&quo ...
- EChart.js 简单入门
EChart.js 简单入门 最近有一个统计的项目要做,在前端的数据需要用图表的形式展示.网上搜索了一下,发现有几种统计图库. MSChart 这个是Visual Studio里的自带控件,使用比 ...
- Vue的简单入门
Vue的简单入门 一.什么是Vue? vue.js也一个渐进式JavaScript框架,可以独立完成前后端分离式web项目 渐进式:vue可以从小到控制页面中的一个变量后到页面中一块内容再到整个页面, ...
- ECharts.js学习(一) 简单入门
EChart.js 简单入门 最近有一个统计的项目要做,在前端的数据需要用图表的形式展示.网上搜索了一下,发现有几种统计图库. MSChart 这个是Visual Studio里的自带控件,使用比 ...
- Bootstrap简单入门
Bootstrap简单入门 BootStrap基本模板 <!DOCTYPE html> <html> <head> <meta charset="U ...
随机推荐
- 详解卷积神经网络(CNN)在语音识别中的应用
欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者:侯艺馨 前言 总结目前语音识别的发展现状,dnn.rnn/lstm和cnn算是语音识别中几个比较主流的方向.2012年,微软邓力和俞栋老 ...
- 去培训机构参加IT培训值不值
近几年,IT培训机构可谓是琳琅满目,稂莠不齐.培训Java的,培训PHP的,培训大数据的等等吧,不一而足. 自己也算是IT技术圈子待了好多年了,面试过一些机构培训出来的学生,也有几个好哥们在培训机构做 ...
- SQL测试题
一.网上收集了一些测试题,对于掌握SQL查询语句. /* Navicat MySQL Data Transfer Source Server : lizebo's MYSQL Source Serve ...
- 布局神器display:flex
2009年,W3C提出了一种新的方案--Flex布局,可以简便.完整.响应式地实现各种页面布局.目前已得到所有现在浏览器的支持. flex浏览器支持 一.Flex布局是什么? Flex是Flexi ...
- 51Nod 1090 3个数和为0 set 二分优化
给出一个长度为N的无序数组,数组中的元素为整数,有正有负包括0,并互不相等.从中找出所有和 = 0的3个数的组合.如果没有这样的组合,输出No Solution.如果有多个,按照3个数中最小的数从小到 ...
- 第四届河南省ACM 序号互换 进制转换
序号互换 时间限制: 1 Sec 内存限制: 128 MB 提交: 41 解决: 19 [提交][状态][讨论版] 题目描述 Dr.Kong设计了一个聪明的机器人卡多,卡多会对电子表格中的单元格坐 ...
- Nginx 搭建rtmp直播服务器
1.到nginx源码目录新建个rtmp目录 ,进入 git clone https://github.com/arut/nginx-rtmp-module.git 2.重编译nginx 代码如下 ...
- thinkphp5.0 微信公众号接入支付宝支付
---恢复内容开始--- 真是无力吐槽这个需求了,想骂客户,好端端的非要在微信公众号接入支付宝,都知道微信公众号是拒绝支付宝的,屏蔽了支付宝,所以在微信公众号接入支付宝的话就必须手动复制链接跳出微信内 ...
- UWP 用Thumb 控件仿制一个可拖动悬浮 Button
参考了 http://www.cnblogs.com/zhanggaoxing/p/6403430.html,并加以改进. 最终效果::: Thumb 的原生事件 DragStarted,DragDe ...
- hdu1754 I Hate It (线段树 更新点的值)
I Hate It Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...