JavaScript

一个完整的JavaScript应由以下三个部分构成:

ECMASctipt DOM DOM

解释型语言

类似于C和Java的语言结构
动态语言
基于原型的面向对象
——JS代码需要编写到script标签中

<script  type="text/javascipt">
//控制浏览器弹出一个警告框
alert("你是猪");
//让计算机在页面上输出一个内容·
//document.write()可以向body中输出一个·内容·
document.write("你看我出不出来");
//向控制台输出一个内容
//console.log()的作用是向控制台输出一个内容
console.log("你猜我在哪?");
</script>
<!--
script标签一旦用于引入外部文件了,就不能在编写代码了,即使编写了浏览器也会忽略
如果需要则可以在创建一个新的script标签用于编写内部代码
-->
<script type="text/javascript" src="js/script.js"></script>
<script type="text/javascript">
    alert("我是内部的js代码");
</script>

标识符

在JS中所有的可以有我们自主命名的都可以称为标识符
例如:变量名,函数名,属性名都属于标识符
命名一个标识符需要遵守如下规则:
1.标识符中可以含有字母·,数字,_.$
2.标识符不能以数字开头
3.标识符不能是ES中的关键字或保留字
4.标识符一般都使用驼峰命名法
5.在字符串中可以使用\表示转义字符
\n 表示换行

var str ="hello";
str = "我说:"今天天气不错"";
str = "\";
alert("str");输出字符串
alert(str);输出变量

数据类型指的是字面量的类型

在JS中一共有6种数据类型

String 字符串
Number 数值
Boolean 布尔值
Null 空值
Undefined 未定义
Object 对象

其中 String ,Number ,Boolean,Null , Undefined属于基本数据类型
而Object属于引用数据类型
可以使用typeof来检查一个变量的类型

var a= "bcd";
var b = 134;
console.log(typeof b);

NaN是一个特殊的数字
强制类型转换
只将一个数据类型强制转换为其它数据类型
类型转换主要指,将其他数据类型转换为String,Number,Boolean

将其他的数据类型转换为String

<script type="text/javascript">
    /*
    将其他的数据类型转换为String
    方式一:
    调用被转换数据类型的toSting()方法
    该方法不会影响到原变量,他会将转换的结果返回
    注意:null和undefined这两个值没有toSting方法

     */
    var a = 123;
    a = a.toString();
    console.log(typeof a);
    console.log(a);
    /*
    方法二:
    调用String()函数,并将被转换的数据作为参数传递给函数
    使用String()函数做强制类型转换时,
    对于Number和Boolean实际上就是调用的toSting()方法
    但是对于null和underfined,就不会调用toSting()方法
    他会将null和underfined直接转化为"null"和"underfined"
     */
    a = 456;
    a = String(a);
    console.log(typeof a);
    console.log(a);
    var b= null;
    console.log(typeof b);
    console.log(b);
</script>

将其他的数据类型转化为Number

 /*
    将其他的数据类型转化为Number
    使用Number()函数
    -字符串--> 数字
    1,如果是纯数字的字符串,则直接将其转化为数字
    2,如果是字符串中有非数字的内容,则将其转化为NaN
    3,如果字符串是一个空串或者是一个全是空格的字符串,则转化为0
    -布尔-->数字
    true 转化为1
    false  转化为  0
    -null-->   数字  0
    - underfined-->   数字NaN
     */
    var c = "789";
    c = Number(c);
    console.log(typeof c);
    console.log(c);
    c = "78a";
    c = Number(c);
    console.log(typeof c);
    console.log(c);
    c = null;
    c = Number(c);
    console.log(typeof c);
    console.log(c);
    c = true;
    c = Number(c);
    console.log(typeof c);
    console.log(c);
//调用parseInt()函数将a转化为Number
    /*
    parseInt()可以将一个字符串中的有效整数取出来
    然后转化为Number
     */
    c = "123fj";
    c = parseInt(c);
    console.log(typeof c);
    console.log(c);
    /*
    parseFloat()作用和parseInt()类似,不同的是它可以获得有效的小数
     */
    c ="123.456fj";
    c = parseFloat(c);
    console.log(typeof c);
    console.log(c);

进制转化

/*
        在JS中,如果需要表示16进制的数字,则需要0x开头
        如果需要表示8进制的数字,则需要0开头
         */
    //16进制
    a = 0x10;
    //8进制
    a = 070;
    console.log(a);

将其他的数据类型转化为Boolean

使用Boolean()函数

 /*
    将其他的数据类型转化为Boolean
    -使用Boolean()函数

    -数字-->布尔
    除了0和NaN,其余的都是true

    - 字符串-->布尔
      除了空串,其余的都是true
      -null 和 underfined都会转化为 false

      对象也会转化为true
     */
    var a = 123;//true
    a = -123;//true
    a = 0;//false
    a = Infinity;//true
    a = NaN;//false
    a = Boolean(a);
    a = "";
    a = Boolean(a);
    a = null;
    a = Boolean(a);
    console.log(typeof a);
    console.log(a);

自增和自减

自增分成两种:后++(a++)和前++(++a)
无论是a++还是++a,都会立即使原变量的值自增1;
不同的是a++和++a的值不同;
a++的值等于原变量的值(自增前的值)
++a的值等于圆水泥变量的新值(自增后的值)

三种逻辑运算符

!非
所谓非运算就是对一个布尔值值进行取反操作
&&与

||或

条件运算符

条件运算符也叫三元运算符
语法:
条件表达式?语句1:语句2;
执行的流程:
条件运算符在执行时,首先对条件表达式进行求值,
如果该值为true,则执行语句1,并返回知心话结果;
如果该值为false,则执行语句2,并返回知心话结果;

  true?alert("语句1"):alert("语句2");
    false?alert("语句1"):alert("语句2");
//获取a b c中的最大值
 var a = 10;
    var b = 20;
var c = 30;
    //a>b ? alert("a大"):alert("b大");
    var max = a > b ? a : b ;
    max = max > c ? max : c ;
//不推荐
// var max = a > b ? (a > c ? a : c ) : (b > c ? b  : c );
    console.log("max = "+ max);

优先级

在JS中运算符也有优先级

在JS中有一个运算符优先级的表
表中越靠上优先级越高
优先级一样从左往右

图片.png

代码块

JS种的代码块中有分组的作用,没有其他用途

流程控制语句

按顺序从上往下依次执行

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 229,963评论 6 542
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 99,348评论 3 429
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 178,083评论 0 383
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 63,706评论 1 317
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 72,442评论 6 412
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 55,802评论 1 328
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 43,795评论 3 446
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 42,983评论 0 290
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 49,542评论 1 335
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 41,287评论 3 358
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 43,486评论 1 374
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 39,030评论 5 363
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 44,710评论 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 35,116评论 0 28
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 36,412评论 1 294
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 52,224评论 3 398
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 48,462评论 2 378

推荐阅读更多精彩内容