August 17-day 27 JS基础知识

什么是JS

  1. js是javaScript的缩写,是一门脚本语言。专门用来负责网页上的行为(可以直接写到网页中)

  2. 在哪儿写js代码
    a.可以写在script标签中(理论上script标签可以放到html文件中的任何位置)
    b.写到标签的事情属性中(例如:onclick)
    c.写到外部的js文件中(.js)

  3. js在网页中能做什么事情
    a.在网页的不同的位置插入html代码
    b.修改某个标签的内容
    c.修改标签的样式

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <!--导入外部的js文件-->
        <script src="js/06-函数.js">
            
        </script>
        
        <!--一个html中可以在多个位置插入script标签-->
        <script type="text/javascript">
            //在
            function insertP(){
                document.write('<p>python</p>')
            }
        </script>
    </head>
    <body>
    
        <h1 id="ss">千峰的所有学科</h1>
        <button  onclick="window.alert('按钮被点击')"></button>
        
        <button onclick="document.getElementById('ss').style.color = 'yellow'">修改颜色</button>    
            
        <!--修改标签内容-->
        <button onclick="document.getElementById('ss').innerHTML='千峰所有的老师'">修改内容</button>
        
        <script type="text/javascript">
            for (var i=0; i<10; i++) {
                document.write('<p>萨达</p>')
            }
        </script>
    </body>
</html>

JS基础语法

  1. js中的注释
    //这是单行注释
    /*
    这是多行注释
    */

  2. 语句
    一条语句结束需要加分号(现在的js版本也可以不用写)
    一行写多条语句必须使用分号隔开

  3. js没有缩进问题,用{}表示一个块

  4. 基本数据类型
    /*
    Number(数字)、String(字符串)、Boolean(布尔)、Array(数组 等于列表)、object(对象 等于字典)
    function(函数)、null、undefined
    */

在控制台中打印括号的内容,功能和python中print
console.log('hello javsscript');
console.log('你好,python');

  1. 字面量
  • 数字字面量
    89;
    1.2;
    3e8;
  • 字符串字面量
    'abc';
    "abc";
  • 布尔字面量
    true;
    false;
  • 数组字面量
    [1,1,'asd',12,3,3,54,654,,654,5];
    [];
  • 对象字面量(对象的key值又是属性,不用加引号)
    var dict= {a:"asd",asd:"sss"};
    console.log(dict['a'], dict.b)
  1. 标识符
    使用标识符来命名
  • a.由字母、数字、_和$组成,数字不能开头
    var s8uu_$;
  • b.不能关键字
    var for
  • c.大小写敏感,y和Y不一样
  • d.规范:1.见名知义

变量的声明

  • js中可以通过声明变量来保存数据
  1. 语法
    var 变量名
    var 变量名 = 初值
    说明: var是关键字;
    变量名:标识符,不能随意使用_或者$开头;驼峰式命名规则(第一个单词首字母小写,后面每个单词的首字母大写)
var userName;
userName = 'w阿萨德';
console.log(userName);

var score = 100;
console.log(score);

//同时声明多个变量名

var nam = '谁说的', age = 45, sex = 'woman';
console.log(nam)

//一个变量可以存储任意类型的值;声明变量的时候,变量没有赋值,默认是undefined
var a = 'abac';
a = 100

运算符

  1. 数学运算符:+,-,*,/,%,++,--
  2. 比较运算符:>,<,==,!=,>=,<=, ===,!==,<==,>==
    -符号‘==’即使是变量里面的内容与之相等,也就是说与类型无关
    -符号‘===’要让内容以及类型相等
  3. 逻辑运算符:&&(与),||(或),!(非)
  4. 赋值运算符: =, +=, -=, *=, /=,%=
  5. 三目运算符 :条件语句 ? 值1 : 值2
    判断条件语句的结果是否是true,如果是true,那么表达式的结果就是值1,否则是值2

分之结构

  • js中的分之结构有两种:if语句,switch语句
  1. if语句
  • a.if(条件语句){满足条件要执行的代码块}
var age = 18
if(age>=18){
    console.log('成年')
}
  • b. if(条件){语句块1}else{语句块2}
if(age>=18){
    console.log('成年')
}else{
    console.log('未成年')
}
  • c.if - else if - else(相当于python中的if-elif-else)
if(age<18){
    console.log('未成年')
}else if(age<40){
    console.log('青年')
}else{
    console.log('老年')
}
  1. switch语句
    switch(变量){
    case值1:
    语句1;
    break
    case值2:
    语句2;
    break
    case值3:
    语句3;
    break
    ...
    default:
    语句4;
    break

执行过程:使用变量的值一次和后边每个case后面的值进行判断,看是否相等。
如果相等就执行那个case后面对应的语句,如果前面每个case后面的值都和变量的值不相等,就执行default后边的语句

var score = 10;
switch(score){
    case 1:
        console.log('F')
        break;
    case 10:
        console.log('D')
        break
    case 4:
        console.log('A+')
        break
    default:
        console.log('其他')
        break;
}
console.log('====')

练习:10分制分数:0-5:不及格,6-7及格,8-9:良好 10:优秀

switch(score){
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
        console.log('不及格');
        break;
    case 6:
    case 7:
        console.log('及格');
        break;
    case 8:
    case 9:
        console.log('良好');
        break;
    case 10:
        console.log('优秀');
        break;
}

循环结构

  • js中的循环分为for循环和while循环
  1. for循环
  • a.for- in (和python中的for循环效果一样)
var ss = [1,2,'asd']
var x
for (x in ss){
   console.log(ss[x])
}
var obj1 = {name:'张三', age:30}
for (var key in obj1){
   console.log(key, obj1[key])
}
  • b.for(表达式1;表达式2;表达式3){循环体}
    执行过程:先执行表达式1,然后再判断表达式2的结果是否是true,如果是true就执行循环体;执行完循环体,再执行表达式3;
    执行完表达式3,再判断表达式2的结果是否为true,如果是true又执行循环题;执行完循环体,在执行表达式3;一次
var sum1 = 0
var i
for(i=1;i<101;i++){
    sum1 += i 
}
console.log(sum1)
  1. while循环
  • a.while(条件语句){循环体} -- 和python一样
var sum2 = 0
var i=1
while(i<=100){
    sum2 += i ;
    i++;
}
console.log(sum2)
  • b.do-while循环: do{循环体}while(条件语句);
    执行过程,先执行循环体,然后判断条件是否成立。如果成立再执行循环体。。。
    依次类推,直到条件不成立,循环结束
var sum2 = 0
var i= 1
do{
    sum2 += i;
    i++;    
}while(i<=100);
console.log(sum2)
  1. break和continue(和python一样)
    break:直接跳出循环体
    continue:直接进行下一次循环

函数

  1. 函数的声明
    function 函数名(参数列表){函数体}
    function - 关键字
    函数名 - 驼峰式:见名知义
    参数:阿萨德
function sum1(num2, num1){   //由于版本原因在设置参数时最好不赋初值,会报错
    console.log('求两个书的和')
    return num1 + num2
}
console.log(sum1(10,20))
//console.log(sum1(20))

//函数没有return的时候,函数的返回值是undefined
function func1(){
    console.log('我是函数1')
}
console.log(func1())
  1. 函数的调用
    函数名(实参列表)
    调用过程和python一样

  2. 作用域
    全局变量:声明在函数外面的变量(从变量声明到文件结束)
    局部变量:声明在函数里面的变量,(从变量声明到函数结束;函数的参数也是局部变量)

aaa就是全局变量
var aaa = 10

function func2(){
    //bbb就是局部变量
    var bbb = 100
    console.log(bbb, aaa)
    //函数中可以修改全局变量
    aaa = 200
    
    //函数中可以声明函数
    function func22(){
        bbb = 1.1
        console.log(bbb)
    }
}
func2()
console.log(aaa)

//可以将函数作为变量
var a = func2
a()
//个数不定参数,js不支持

数据类型

  • 数字、字符串、布尔、列表、对象
  1. 数字:包含整数和小数(支持科学计数法)
var num1 = 10
var num2 = new Number()
console.log(num2+10)
  1. 字符串
  • a.''和""括起来的字符集
  • b.转义字符(和python一样)
  • c.字符编码是Unicode编码
var str1 = 'abc'
var str2 = "aasc"
var str3 = '\n'
var str4 = '\\'
  • e.获取字符串的长度:字符串.length
    console.log(str1.length)

  • f.获取单个字符:字符串[下标]
    下标:1.范围是0~长度-1

  1. 如果越界,不报错,但是结果是undefined

js中的字符串不能切片
console.log(str1[0])

  • g.运算符
    js中字符串只支持+,不支持*
    字符串1 + 字符串2 --- 拼接两个字符串

js中字符串可以和其他任何数据进行加操作,其效果都是字符串连接(会将其他数据转换成字符串)

console.log('123'+'abc', 100+'sss')

  • h.字符串相关方法(查)
var str23 = 'asd456'
var re = str23.replace(/\d+/,'fff')
console.log(re)
  1. 对象, 构造方法(类)
var obj1 = {name:'asd', asd:88}
console.log(obj1['name'], obj1.name)

function Person(){
    this.name = 'abc'
    this.age = 18
    this.sex = '女'
}
var p1 = new Person()
p1.name = 'mmm'
p1.age = 20
console.log(p1,typeof(p1))
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342

推荐阅读更多精彩内容