1、JS的核心标准ECMAScript
       组成
     ECMAScript------>核心语法标准
     DOM------------->对文档节点的操作
     BOM------------->对浏览器的操作
 
2、JS的注释:
         单行注释
               //注释内容
          多行注释
               /*
                    注释内容
               */
 
3、JS的保留字和关键字
  关键字:有特殊功能的单词如:
break
do
try
typeof 
case 
else 
new
var
catch 
finally
return
void
continue
for
switch
while
debugger
this 
function
 with
default
 if 
throw 
 instanceof
delete 
 in
 
 
 
 
         
  保留字:将来有可能成为关键字的单词如:
 
abstract    
enum           
int            
short      
boolean      
export      
interface      
static
byte         
extends      
long           
super      
char           
final        
native         
synchronized
class         
float           
package     
throws   
const        
goto       
private        
transient
debugger  
double      
implements
protected
volatile      
import   
public
 
 
 
 
 
 
4、JS的变量
         声明:用var声明变量(变量都是弱类型的)
          var a;
   var a = 12;
   var a=1, b=2, c=3; 
          变量命名规则:
          1、字母、数字、下划线、$组成
          2、数字、下划线不能开头(下划线可以开头,尽量不要使用)
          3、尽量采用驼峰式命名法
          4、不能使用关键字和保留字
  注意:尽量写完一段语句,在其后面添加分号“ ; "
 
5、数据类型:
   检查数据类型的关键字:typeof   例如:console.log(typeof a);    //检查变量a的类型
   检查变量是否属于某一个数据类型:instanceof   例如:console.log(a instanceof object);
     基本数据类型5种
          undefined类型 只有一个值就是undefined值,undefined继承null
               1)声明但没有初始化的变量
                    var a;//a的值是undefined
               2)显示将undefined值赋值给一个变量
                    var a =undefined;
          null类型 空,一般用来存放一个空对象的指针,就只有一个值null      null==undefined;    //true
               var a = null;
          boolean类型
               有两个值:true、false
               var a = true;
               var a = false;

number类型

               var a = 12;
               number类型还有一个值NaN,NaN不能用双等去判断,因为任何值与NaN都不会相等,console.log(typeof 1/"str");   //NaN  
               判断一个值是不是NaN用isNaN(变量名或者值)方法判断,他判断的是不是 不是一个数值
               number类型还有两个值:Infinity和-Infinity值,判断数值是否在数值类型范围内:isFinite()
          string类型(javascript中没有字符类型的概念)
               var a = "true";
               var a = 'false';
    //打印字符串的长度
    console.log(a.length);   //5
                注:和上面boolean的值和类型都是不相等的
 
     引用类型3种
          object类型   对象
               var a = {};
               var a = {'name': 'zhangsan'};
     console.log(a["name"])
               注:上述的name属性可以不打引号;类似于python的字典,任意数据都能存储,访问方式也类似于python
          array类型    数组    打印的时候会是一个object对象类型
               var arr = [1,2,3,4,5];
               注:类似于python的列表,任意数据都能存储
          function类型   函数
               function test(){}
               var test = function(){}
 
          如果函数();在函数定义之前,浏览器会自动将函数提升到执行函数的前面
     注:使用没有声明过的变量,编辑器会报错;如果在之后声明或者赋值只会打印undefined值,就不会报错如:
            1)console.log(c);    //这里就会报错;
            2)console.log(c);   //这里就不会报错,并且打印undefined
                 var c;      
            3)console.log(c);   //这里就会先打印undefined值
                 var c = 1;
                 console.log(c);  //之后再打印1值
                 在JS中变量声明会提升
6、运算符:
         ==就是判断值是否相等
         ===就是判断“值是否相等”和“类型是否相等”
7、JS特点
     1)浏览器端执行,node环境执行
     2)解释性语言
     3)弱类型语言
     4)自上而下执行
 
8、运算符
     1)操作运算符   +、-、*、/、%,和Java、python等高级语言的使用相同
 
     2)一元运算符   ++、--,也是和Java语言的使用相同,包含前自增/减(先做运算再使用)、后自增/减(先使用再做运算)
     +/-,可以将其他类型转换成number类型
     console.log(+'123');            //输出123      -'123'输出-123, -'-123'输出123
     console.log(+true);             //输出1
     console.log(+false);            //输出0
     console.log(+null);             //输出0           -null输出-0
     console.log(+undefined);   //输出NaN
     console.log(+'');                 //输出0
     console.log(+' ');                //输出0
 
     3)赋值运算符   =、+=、-=、*=、/=、%=
          var a = 2;
          var a += 2;   //a=a+2
         其他运算符和这个很类似
     4)比较运算符
          1 == ‘1’          //true
          true == ‘true’  //false
          1 == true            //true   
          0 == null           //false         
          注:只有null和null相等的,undefined和undefined相等的 undefined == null值为true,这三者才为true
                 
     总结:number和string看起来一样就为true;
               boolean转换为number一样,就为true;(true -> 1,false -> 0)
          如果进行运算boolean类型根据上述转换,再和number值运算
               string和boolean,即使看起来一样,也为false;
    
     5)逻辑运算符   (表示false的值有null、NaN、undefined、false、0、“”)
     总结:逻辑与和逻辑或的返回值都是跳出判断的值,即哪个操作跳出来就返回哪个操作数
 
     非!(NOT) 可以将任何类型的数据转换成boolean类型
     !!a可以看成Boolean(a),  boolean类型包装器
    
      6)三目运算符  (variable = boolean_expression ? true_value : false_value;)
          可以简化if···else···语句
  
  7)两者运算 m+n
   1、当m,n不为String,Object类型的时候,先将m,n转换为Number类型,转换Number类型可以参考类型转换知识点,然后再进行计算
   2、当m,n有一个为String,无论另一个操作数为何(但不为对象)都要转换为String,然后再进行拼接 
   3、当m,n 有一个为对象,如果该对象既重写toString,又重写了valueOf方法,先调用valueOf方法获 取返回值,将该返回值和另外一个操作数进行运算。如果该对象没有重写valueOf方法,将调用 toString方法获取返回值,将该返回值和另外一个操作数进行运算。 在打印对象时alert(obj)默认是调用toString()方法,console.log(obj)默认是调用valueOf()方法
//对象相加
var obj = {
"name": "zhangsan",
"age": 20,
toString: function(){
return "this is a obj"
},
valueOf: function(){
return "this is a func"
}
}
var c = "str"
console.log(obj);
console.log(c+obj); //strthis is a func
alert(obj); //this is a obj
 
9、类型转换
  假性值:表示false的值有null、NaN、undefined、false、0、“”,这个尤为重要
     1)其他类型转换string类型:
          ①toString()函数   另外null、undefined不能转换,其他类型都能
               var a = 12;
               a.toString();    //'12',如果括号里有数字,就需要按照这个数字的进制来转换,例如  a.toString(8);    //"14"
               注:number类型的具体值不可以直接调用toString()方法,但可以用括号括起来使用,括号括起来的是大类型数据,基础数据类型没有属性和方法
          ②String()函数 任意类型都能转换
          ③字符串的拼接+

2)其他类型转换Boolean类型 
          ①Boolean()函数 任意类型都可转换
               假性值都为false,其他的值都为true
          ②非!(NOT) 可以将任何类型的数据转换成boolean类型
          !!a可以看成Boolean(a),boolean类型包装器

3)其他类型转换number类型  
          ①Number()函数(不解析八进制,可以解析十六进制)转换规则如下:

    假性值当中只有undefined是转换NaN,其他的都转换0
    字符串的字面值为数字的,就直接转换,或者其前面有加号”+“,都可以直接转换
    其他的都转换NaN
          ②parseInt()函数(不解析八进制,可以解析十六进制)    //如果有两个参数,第一个参数是第二个参数进制的表示,例如  console.log(parseInt("1010", 2));   //10
                   如果第一个字符不是数字或者不是加号和减号,parseInt() 就会返回NaN,同样的,用parseInt() 转换空字符串也会返回NaN。
                   如果首位为数值,依次向后解析,找到连续的数值,直到遇到第一个非数值的,将之前获取的数值转换为Number返回
          ③parseFloat()函数(不解析八进制,也不解析十六进制)
               如果首位为数值,依次向后解析,找到连续的数值,直到遇到第一个非数值的,将之前获取的数值转换为Number返回

注:parseFloat() 所解析的字符串中第一个小数点是有效的,而parseInt() 遇到小数点会停止解析,因为小数点并不是有效的数字字符。
          parseInt和parseFloat都将null、undefined、boolean解析为NaN

注:console.log()会返回一个值里面包含的所有空格,但是返回到页面上就不会解析连续的空格

     4)+ 自动类型转换 
 
 
 
 
 
 
 
 
 
 
 
 
 

前端开发JS——快速入门的更多相关文章

  1. 前端学习 node 快速入门 系列 —— 初步认识 node

    其他章节请看: 前端学习 node 快速入门 系列 初步认识 node node 是什么 node(或者称node.js)是 javaScript(以下简称js) 运行时的一个环境.不是一门语言. 以 ...

  2. 前端学习 node 快速入门 系列 —— npm

    其他章节请看: 前端学习 node 快速入门 系列 npm npm 是什么 npm 是 node 的包管理器,绝大多数 javascript 相关的包都放在 npm 上. 所谓包,就是别人提供出来供他 ...

  3. 前端学习 node 快速入门 系列 —— 报名系统 - [express]

    其他章节请看: 前端学习 node 快速入门 系列 报名系统 - [express] 最简单的报名系统: 只有两个页面 人员信息列表页:展示已报名的人员信息列表.里面有一个报名按钮,点击按钮则会跳转到 ...

  4. 要web开发精品教程吗?免费无广告一百期连讲的那种-逐浪CMS前端开发100期入门教程全面开放

    要web开发精品教程吗?免费无广告一百期连讲的那种-逐浪CMS前端开发100期入门教程全面开放 大师主讲 经验难得 由逐浪CMS首席架构师发哥老师,亲自主理讲解. 历时一年精心打造, 汇聚了互联网诞生 ...

  5. Node.js快速入门

    Node.js是什么? Node.js是建立在谷歌Chrome的JavaScript引擎(V8引擎)的Web应用程序框架. 它的最新版本是:v0.12.7(在编写本教程时的版本).Node.js在官方 ...

  6. 前端学习 node 快速入门 系列 —— 模块(module)

    其他章节请看: 前端学习 node 快速入门 系列 模块(module) 模块的导入 核心模块 在 初步认识 node 这篇文章中,我们在读文件的例子中用到了 require('fs'),在写最简单的 ...

  7. 前端学习 node 快速入门 系列 —— 简易版 Apache

    其他章节请看: 前端学习 node 快速入门 系列 简易版 Apache 我们用 node 来实现一个简易版的 Apache:提供静态资源访问的能力. 实现 直接上代码. - demo - stati ...

  8. 前端学习 node 快速入门 系列 —— 服务端渲染

    其他章节请看: 前端学习 node 快速入门 系列 服务端渲染 在简易版 Apache一文中,我们用 node 做了一个简单的服务器,能提供静态资源访问的能力. 对于真正的网站,页面中的数据应该来自服 ...

  9. JS快速入门(二)

    目录 JS快速入门(二) 结构图 BOM window对象 open() window子对象 location对象 history对象(了解) navigator 对象 screen对象 BOM 定时 ...

随机推荐

  1. elasticsearch中文搜索优化

    遇到的问题 检索葡萄糖关键字,希望结果仅包含葡萄糖,不包含葡萄:检索葡萄,希望结果包含葡萄糖. 同义词如何配置 如何确保搜索关键词被正确分词 分析器分词流程 分析器扮演着非常重要的角色,ES提供的有内 ...

  2. apache jmeter 使用

    ======================= 插件 ======================= 在JMeter 中很多东西都是基于插件技术的, 所以扩展性非常好, 比如下面这些东西都是插件: 1 ...

  3. bay——安装_RAC11g_LC_测试环境-rehat6+udev.txt

    ★★★____★☆★〓〓〓〓→VMware vSphere Client6.0 https://10.20.4.200/ 下载Vwmare IP:10.20.4.200-------账号:root-- ...

  4. semantic功能介绍

    semantic功能介绍 gnu Semantic Manual 1,代码自动补全 3,代码导航 启动semantic功能:(semantic-mode 1) 1,Semantic mode 是辅助模 ...

  5. [Php] windows下使用composer出现SHA384 is not supported by your openssl extension

    composer的版本太低了,需要更新composerwindows的安装使用https://getcomposer.org/Composer-Setup.exe报这个错Failed to decod ...

  6. vue调用高德地图:vue-amap

    前言:之前没有接触过页面调用地图的项目,某次面试,老板要求我用vue-amap调用高德地图,回家以后,我去网上查了一些案例和教程,看似很简单的引入调用,我却整整弄了一宿,还没弄出来!!!百般无奈之下, ...

  7. Html学习之十一(CSS选择器的应用一)

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  8. 6.gitlab 备份

    在配置文件有有默认的  备份路劲 sudo vim /etc/gitlab/gitlab.rb 默认在这个  路径下面 /var/opt/gitlab/backups 然后默认的备份时间是  7天 , ...

  9. 201271050130-滕江南-《面向对象程序设计(java)》第十六周学习总结

    201271050130-滕江南-<面向对象程序设计(java)>第十六周学习总结 博文正文开头格式:(2分) 项目 内容 这个作业属于哪个课程 https://www.cnblogs.c ...

  10. 攻防世界pwn之新手区

    涉及的工具有 Ubuntu 16.04 pwntools IDA gdb-peda 1.get_shell 连接就给flag,可以直接用nc连接,然后输入ls查看里面的目录,发现有名字叫flag文件, ...