1 JS 概述

一个完整的javascript实现是由以下3个不同部分组成的:

(1)     核心(ECMAscript)

(2)     文档对象模型(DOM)  Document object model (整合js,css,html)

(3)     浏览器对象模型(BOM) Broswer object model(整合js和浏览器)

(4)     Javascript在开发中绝大多数情况是基于对象的,也是面向对象的

ECMAscript描述了以下内容:

语法

类型

语句

关键字

保留字

运算符

对象(封装 继承 多态)基于对象的语言 使用对象

Javascript的引入方式

(1)     直接编写

(2)     导入文件

小结:JS是一门弱类型语言,相当随便的语言;

Python是一门强类型语言,动态语言

2 JS基础

变量

Javascript中的变量是用来保存值

(1)     变量是弱类型的

(2)     声明变量时不用声明变量类型,全部用关键字var

(3)     一行可以声明多个变量,并且可以是不用类型

(4)     变量名首字符只能是字母,下划线,$美元符 三选一,且区分大小写,x与X是两个变量

(5)     变量还应遵守以下某条著名的命名规则:

1>    Camel 标记法  首字母是小写的,接下来的字母都以大写字符开头。

2>    Pascal 标记法  首字母是大写的,接下来的字母都以大写字符开头。

3>    匈牙利类型标记法在以 Pascal 标记法命名的变量前附加一个小写字母(或小写字母序列),说明该变量的类型。

基础规范

(1)     每行结束最好加分号,没有分号会以换行符作为每行的结束

(2)     注释  多行注释  /*   */

单行注释  //

(3)     使用{}来封装代码块

常量和标识符

常量:直接在程序中出现的数据值

标识符:

(1)     由不以数字开头的字母,数字,下划线,美元符号组成;

(2)     常用于表示函数、变量等的名称;

(3)     JavaScript语言中代表特定含义的词称为保留字,不允许程序再定义为标识符

数据类型

(1)   数字类型  最基本的数据类型

不区分整型数值和浮点型数值

整数:

在javascript中10进制的整数由数字的序列组成

精确表达的范围是
-9007199254740992 (-253) 到 9007199254740992 (253)

超出范围的整数,精确度将受影响

浮点数:

使用小数点记录数据

使用指数记录数据

16进制和8进制数的表达

16进制数据前面加上0x,八进制前面加0

16进制数是由0-9,A-F等16个字符组成

8进制数由0-7等8个数字组成

16进制和8进制与2进制的换算

(2)    字符串

是由unicode字符,数字,标点符号组成的序列

字符串常量首尾由单引号或双引号括起

JavaScript中没有字符类型

常用特殊字符在字符串的表达

字符串部分特殊字符必须加上右划线\

常用的转义字符 \n:换行  \':单引号   \":双引号  \\:右划线

String数据类型的使用

特殊字符的使用方法和效果

Unicode的插入方法

(3)    布尔型

Boolean类型仅有两个值:ture和false,也代表1和0,实际运算中true=1,false=0

布尔值也可以看作on/off、yes/no、1/0对应ture/false

Boolean值主要用于JavaScript的控制语句

Null &Undefined

Undefined类型只有一个值,即undefined。当声明的变量未初始化时,该变量的默认值是undefined。当函数无明确返回值时,返回的也是值 "undefined"。

Null类型

Null只有一个专用值null。undefined 实际上是从值 null 派生来的

尽管这两个值相等,但它们的含义不同。undefined 是声明了变量但未对其初始化时赋予该变量的值,null 则用于表示尚未存在的对象(在讨论 typeof 运算符时,简单地介绍过这一点)。如果函数或方法要返回的是对象,那么找不到该对象时,返回的通常是 null

(4)   数据类型转换

JavaScript属于松散类型的程序语言

变量在声明的时候并不需要指定数据类型

变量只有在赋值的时候才会确定数据类型

表达式中包含不同类型数据则在计算过程中会强制进行类别转换

数字+字符串:数字转换为字符串

        var s=12+"hello";
console.log(s);
console.log(typeof s)
>>


  

数字+布尔值:true转换为1,false转换为0

字符串+布尔值:布尔值转换为字符串true或false

        var s1=true+"hello";
console.log(s1);
console.log(typeof s1);
>>


(5)     强制类型转换函数

函数parseInt:   强制转换成整数   例如parseInt("6.12")=6  ; parseInt(“12a")=12 ; parseInt(“a12")=NaN  ;parseInt(“1a2")=1

函数parseFloat: 强制转换成浮点数  parseFloat("6.12")=6.12

console.log(parseInt(3.54))
>>


函数eval:将字符串强制转换为表达式并返回结果 eval("1+1")=2 ; eval("1<2")=true

(6)     类型查询函数

ECMAScript 提供了 typeof 运算符来判断一个值是否在某种类型的范围内。可以用这种运算符判断一个值是否表示一种原始类型:如果它是原始类型,还可以判断它表示哪种原始类型。

函数typeof :查询数值当前类型
 (string / number / boolean / object )

    var n=5;
var s="5";
var b=true; console.log(typeof n);
console.log(typeof s);
console.log(typeof b);
>>


  

JS基础学习1的更多相关文章

  1. JS基础学习——对象

    JS基础学习--对象 什么是对象 对象object是JS的一种基本数据类型,除此之外还包括的基本数据类型有string.number.boolean.null.undefined.与其他数据类型不同的 ...

  2. JS基础学习——闭包

    JS基础学习--闭包 什么是闭包 闭包的定义如下,它的意思是闭包使得函数可以记住和访问它的词法范围,即使函数是在它声明的词法范围外执行.更简单来讲,函数为了自己能够正确执行,它对自己的词法范围产生闭包 ...

  3. JS基础学习——作用域

    JS基础学习--作用域 什么是作用域 变量的作用域就是变量能被访问到的代码范围,比如在下面的这个js代码中,变量a的作用域就是函数foo,因此在全局作用域内的console.log(a)语句不能访问到 ...

  4. JS 基础学习随想

    2012年就已经接触过了js,给我的印象:这是一门谈不上复杂的语言.大概这就是所谓的学的越浅,用的越少,觉得自己会的东西好像得更多吧!开始做基础练习题的时候觉得好像都十分简单.可是后来在做到对象数组的 ...

  5. handlebars.js基础学习笔记

    最近在帮学校做个课程网站,就有人推荐用jquery+ajax+handlebars做网站前端,刚接触发现挺高大上的,于是就把一些基础学习笔记记录下来啦. 1.引用文件: jquery.js文件下载:h ...

  6. JS基础学习篇(一)

    近来一直在学习js和jquery.刚刚进入前端工作还没有多久,虽然大学里学习的是编程自认为也学的还可以,但前端接触的不多,一直认为前端十分简单.其实不然,特别是工作的时候要自己设计一个完整的项目前端, ...

  7. Node.js基础学习四之注册功能

    前言:在Node.js学习(二)和(三)中介绍了如何在Node.js 中获取登录的用户名和密码与数据库进行验证并返回数据给客户端 需求:实现注册功能 为了区分登录和注册是两个不同的请求,在端口后面加上 ...

  8. 两万字Vue.js基础学习笔记

    Vue.js学习笔记 目录 Vue.js学习笔记 ES6语法 1.不一样的变量声明:const和let 2.模板字符串 3.箭头函数(Arrow Functions) 4. 函数的参数默认值 5.Sp ...

  9. JS基础学习(二)

    昨天把网站上的基础知识看完了,下面是剩下的部分 第六节 JS Window浏览器对象模型 JavaScript全局对象,函数,变量均自动成为window对象的成员. 1.Window对象 1.获取浏览 ...

随机推荐

  1. Tomcat设计模式

    omcat 系统架构与设计模式,第 2 部分 设计模式分析 系列内容: 此内容是该系列 2 部分中的第 2 部分: Tomcat 系统架构与设计模式 门面设计模式 门面设计模式在 Tomcat 中有多 ...

  2. 前端面试题整理—jQuery篇

    1.为什么使用jquery,他有哪些好处? 1)轻量级.代码简洁 2)强大的选择器,出色的DOM操作封装 3)有可靠的事件处理机制 4)浏览器兼容性好 5)支持链式操作 6)支持丰富的插件 2.jqu ...

  3. 本地ssh设置多个git项目访问

    前因: 自己本地的~/.ssh里原本有个id_rsa,到了公司后新的git项目配置后,把自己原有的文件覆盖了,导致github和公司的项目我只能选一个,郁闷,怎么区分开呢? 大致逻辑是新生成一对密钥文 ...

  4. 【转】使用keepalived设置虚拟IP示例

    准备 准备两台机器,IP地址信息如下: host1: 192.168.56.103 host2: 192.168.56.104 为了测试需要,分别在两台机器上安装apache并启动httpd服务,使下 ...

  5. zabbix3.2监控rabbitmq集群

    监控模板和脚本github地址:https://github.com/jasonmcintosh/rabbitmq-zabbix/tree/master/scripts/rabbitmq .将rabb ...

  6. OpenCV3编程入门读书笔记5-边缘检测

    一.边缘检测的一般步骤 1.滤波 边缘检测的算法主要是基于图像强度的一阶和二阶导数,但导数通常对噪声很敏感,因此必须采用滤波器来改善与噪声有关的边缘检测器的性能. 2.增强 增强边缘的基础是确定图像各 ...

  7. greenplum加密

    --如下为greenplum5.0数据库加解密--加密函数select encrypt('123456','aa','aes');--加解密函数select convert_from(decrypt( ...

  8. CentOS7上部署taiga项目管理软件

    作者:waringid 一.简介 Taiga 是一个免费开源,而且功能非常强大的项目管理平台,用于初创企业和敏捷开发团队.提供一个简单.漂亮的项目管理工具.Taiga 采用 Python Django ...

  9. SpringBoot图片上传(三)——调用文件上传项目的方法(同时启动两个项目)

    简单说明:图片上传有一个专门的工程A,提供了图片的上传和下载预览,工程B涉及到图片上传以及回显,都是调用的工程A的方法,言外之意就是要同时启动两个项目. 代码: //工程B的html代码 <di ...

  10. Linux安装与基本命令

    安装centos镜像 #下载地址https://www.centos.org/download/ http://isoredirect.centos.org/centos/7/isos/x86_64/ ...