JS基础(一)

javascript

一、 前言

  1. JS 是一个脚本语言
  2. JS是web的编辑语言
  3. 经常理解为 html-结构、css-样式、js-行为
  4. js可以写html、也可以写css、但是主要是用来渲染页面,负责页面和数据之间的传递和显示,以及编辑功能....

二、JS基础

1.使用

和css差不多,js有两种使用方式
1.内部js
在html的底部

<html>
<body><body/>
<script>js代码</script>
</html>

2.外部引入
<script src="demo.js"></script>

2.输出

1.弹框 alert
内部js
<script>
        //写js代码
        alert('js第一天');
    </script>
2.外部js里面直接写代码
alert('哈哈哈');

3.写到html上 document.write
<script>
         document.write('床前明月光');  
         document.write('<br>'); 
         document.write('疑是地上霜');   
</script>

4.innerHTML写到html内里面可以写html的标签,显示的时候显示的是标签内的东西。
innerText写到标签里面,如下所示会显示包含标签的一块
app我们称为节点,通过节点然后把内容写到该节点的地方
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <div id="app">
    </div>
    <p id="app2">
    </p>
    <script>
        // innerHTML
        app.innerHTML = '<span class="border: 1px solid">两行白鹭上青天</span>';
        // innerText
        app2.innerText = '<span class="border: 1px solid">两行白鹭上青天</span>';
    </script>
</body>
</html>

5.写到控制台 浏览器F12调出控制台console
console.log('今天天气很好');
  1. 变量
1.变量
变量一个可变的量,用来储存数据
声明一个变量用var
var 变量名;
var num; 这个时候num是个变量
变量赋值 = 赋值符号      num = 1;     这个时候num等于1
2.关键字
一些语言以及规定意义的词比如function
3.标识符
js严格区分大小写
命名规范: 
  字母 $ _ 开头
  第一个单词小写,后面的单词第一个字母必须大写

4.小总结

一、变量
    * 变量是什么,有什么用
    * 声明变量
    * 赋值
二、js一些语法和概念
    1. 区分大小写(html不区分大小写)
    2. 标识符(比如变量名称等)
        * 以字母、下划线、$开头
        * 其他字符可以是字母、下划线、$或数字
        * 驼峰式:小写字母开头,第二个打次首字母大写
    3. 注释
        * 单行注释
        * 多行注释
    4. 关键字和保留字
        * 关键字:系统在使用
        * 保留字:系统将来可能用到
        * 不能作为标识符来使用
        * 用来作标识符就会报错
三、变量有哪些类型
    1. 数字 Number类型
        * 整数
        * 小数
        * 最大值和最小值
        * NAN
    2. typeof 判断变量的类型
    3. String类型 字符串
    4. Boolean类型 true和false
    5. Undifined类型 undefined
        * 用来表示声明了变量但未初始化(赋值)
    6. Object类型
        * 普通对象(无序集合)
        * 数组(特殊对象)
    7. Null类型 null
        * 声明一个变量准备用来存储对象
四、变量的类型判断
    * 基本数据类型(简单数据类型) Undefined、Null、Boolean、Number和String
    * 引用数据类型(复杂数据类型) object,array他们的属性或者成员可以包含简单数据类型

5.数据类型

5个基本数据类型
1.数组类型 Number
  数字   NaN
2.字符串类型 String 
  ' ' 或 'saf'
3.布尔类型 Boolean
  true 或 false
4.undefinde 未定义
5.null 空

2个引用数据类型
1..数组类型Array
  var 数组名 = [ ]
  var 数组名 = [数组值]
  var 数组名 = [  {object}]
2..对象类型Object
  var 对象名 = { }
  var 对象名 = new object
  var 对象名 = {    属性(变量名)=值(各种类型) }
  NULL和Array的数据类型都是Object

6.运算符

和数学的运算符一致
加 +
减 -
乘 *
除 / 
取余 %

7.关系运算

1.if判断语句
  if(条件语句 (变量或运算)){执行代码}else{执行语句}
如果满足就干嘛,否者就干嘛
if(!null){return:"哈"}else{return:"切"}
如果不是空就返回 哈,否者返回 切

2.赋值运算符和逗号运算符
赋值运算符 =  用于给变量赋值
复合运算符:
  +=    a += 10;    =>   a=a+10
  -=    a -= 2 ;    =>   a=a-2
  *=    a *= 5;     =>   a=a*5
  /=    a /= 3      =>    a=a/3
逗号运算符 , 用于简洁声明变量
var a,b = 10 ;  声明a,b变量并赋值10

3.一元运算
自加运算符 ++
  ++i 先自加1再参与计算
   i++ 先参与计算再自加1
负号运算符 - 
  直接给变量取负值
自减运算符 --
  --i 先自减1再参与计算
  i-- 先参与计算再自减1

4.逻辑运算
逻辑非 !
  取相反的值 先用布尔进行判断,会涉及类型转换,隐式和显式转换
逻辑与&&
  布尔类型情况下 只要有一个false就不会检查后面的,结果就是false
  非布尔情况下  判断第一个变量的值(先进行隐式布尔转换)若第一个为true取后面false的变量值,若第一个为false取第一个变量的值
  实际应用里的小技巧
  // 下面用这个特性来检测这个变量有没有值和属性
    var cat = false;
    console.log(cat && cat.name);
逻辑或 ||
  布尔情况下,条件里满足一个就为true,都不满足为false
  非布尔情况下,在条件里找true,值都取第一个为true的值,若没有true则取最后一个的值
  // 小技巧,用于不确定有没有给值,先设置一个默认值
    var date;
    var dater = date || '2019-2-15';
    console.log(dater);
扩展 多个运算在一起的情况下
  /**
        在下列的算式里,看似很复杂,实际上可以分成两大部分||左右进行判断,
        如果前者为false再算后面的,
        而后面的关系运算符==也可以分成左右两边进行计算
        得出结论,计算优先级之前得看清全盘,最后关键是赋值运算那
        */
        // 计算优先级:()=> 自加减 => 算术运算 => 关系运算(比较运算)=> 逻辑运算=> 赋值运算;
        var sum = 20 + i++ + 'abc' || 123 - ++i + ++j + ++j + '123' == 123 * 2 / 4 ;

5.类型转换
隐式转换
  在条件语句为一个变量时出现
  先把变量转换为布尔类型,true执行else之前的,false执行else之后的
  空、0、undefinde、NaN,各类数据类型意义上为无的都为false,否者就为true
显式转换
  判断变量的类型       typeof 变量名
  Number(变量名);   除了数字和空以及布尔其他全为NaN
  Boolean(变量名);      !!Boolean(变量名) 空、0、undefinde、NaN,各类数据类型意义上为无的都为false,否者就为true
  String(变量名);   全部加上引号变成字符串然后(+)连接起来 
  Object(变量名);基本不进行转换因为对象可以把所有类型都包含
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,997评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,603评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,359评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,309评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,346评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,258评论 1 300
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,122评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,970评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,403评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,596评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,769评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,464评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,075评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,705评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,848评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,831评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,678评论 2 354

推荐阅读更多精彩内容

  • 33、JS中的本地存储 把一些信息存储在当前浏览器指定域下的某一个地方(存储到物理硬盘中)1、不能跨浏览器传输:在...
    萌妹撒阅读 2,082评论 0 2
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,476评论 1 45
  • js的历史 在上个世纪的1995年,当时的网景公司正凭借其Navigator浏览器成为Web时代开启时最著名的第一...
    LaBaby_阅读 281评论 0 2
  • 27、移动端响应式布局开发 响应式布局开发 1、什么是响应式布局开发?把我们开发完成的产品,能够让其适配不同的设备...
    萌妹撒阅读 1,044评论 0 0
  • 闹铃响了一遍又一遍!就是无法完全醒来,已经八点了!真愁人,也不知道以前在公司上班是怎么混的!对自己还是太过放任了。...
    花样儿阅读 274评论 0 0