javaScript学习笔记一:javaScript基础

javaScript学习笔记一:javaScript基础

文章目录

      • javaScript学习笔记一:javaScript基础
        • javaScript入门
        • 获取标签元素的操作
        • JS编写的最佳位置
        • js输出以及调试方式
        • 常见的js事件
        • 动手操作div任意样式
        • JS的数据类型
        • JS的变量
        • 数据类型之间的转换
        • js创建复杂数据类型数组和对象

javaScript入门

  1. js是一种直译式脚本语言,是一种动态类型,弱类型基于原型的语言。也就是说js是一种运行在浏览器中的解释型的编程语言。
  2. js的三种组成

ECMAScript :解释器,翻译者(描述了该语言 的语法和基本对象)它是javaScript的标准

DOM(Document Object Model):文档对象模型,W3C是DOM的标准。

BOM:(Brower Object Model): 浏览器对象模型,缺乏标准。

  1. 第一个js代码实现鼠标的移入移出事件。

鼠标移入事件:onmouseover

鼠标移出事件:onmouseout

步骤:

**1、通过id找到我们要改变的div **

2、修改我们的css属性

这种写法有个问题就是各种版本的浏览器兼容性差,最好将css属性写入到


<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Documenttitle>
        <style type="text/css">
            #tim{
      
                width: 200px;
                height: 200px;
                border:1px solid black;
                margin: 0 auto;
            }
        style>
    head>
    <body>
        <div id="tim" onmouseover="tim.style.background='red'" onmouseout="tim.style.background='white'">div>
    body>
html>

获取标签元素的操作

document.getElementById(‘Id名’) 返回这个Id名的元素

document.getElementsByTagName(‘标签名’) 返回所有这个标签名的元素集合,返回的是该标签的数组

document.getElementsByClassName(‘className’) 返回所有这个class的元素的集合。

document.querySelector(“css任意选择器”) 返回第一个

document.querySelectorAll(“css任意选择器”) 返回符合的所有

document.documentElement 获取HTML元素

document.body 获取body元素


<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Documenttitle>
        <style type="text/css">
            #tim{
      
                width: 200px;
                height: 200px;
                border:1px solid black;
                margin: 0 auto;
            }
        style>
    head>
    <body>
        <div id="tim" class="xiaodi">div>
        <script type="text/javascript">
            //返回这个id名的元素。
            //document.getElementById('tim').style.background='red'
            //返回所有这个标签名的元素集合,获取到的是一个集合,拥有数组的特性
            //document.getElementsByTagName('div')[0].style.background='black'
            //通过ClassName获取到的也是一个集合
            //document.getElementsByClassName('xiaodi')[0].style.background='yellow'
            //document.querySelector("css任意选择器")返回第一个
            //css的选择器包含div,className,id.
            //使用时,div直接填div,className改为.className,id修改为#id
            //document.querySelector("div").style.background='green'
            //document.querySelector("#tim").style.background='red'
            //document.querySelector(".xiaodi").style.background='black'
            //document.querySelectorAll("css任意选择器")返回所有,返回是一个数组。
            //document.querySelectorAll(".xiaodi")[0].style.background='red'

        script>
    body>
html>

JS编写的最佳位置

  1. 一般情况下js写在页面的任何位置都可以,但是需要Script标签包括着,但是别写在html标签外。
  2. 最常见的写在head标签内部或者body内部
  3. 写在head标签内需要写上window.onload包着,要不然会报错,因为执行js时页面标签没有加载。

window.onload的作用是当页面加载完成后自动触发事件。

一个页面应该只有一个window.onload事件,如果写多个,就会覆盖执行最后一个。

js应该写在body结束标签之前。

  • 下面代码分别是将js写在head标签里,写在body标签里,引用外部js代码。

<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Documenttitle>
        <style type="text/css">
            #tim{
      
                width: 200px;
                height: 200px;
                border:1px solid black;
                margin: 0 auto;
            }
        style>
        
        <script type="text/javascript" src='js代码应该写在哪里.js'>script>
    head>
    <body>
        <div id="tim">div>


        
    body>
html>

js输出以及调试方式

  1. 弹窗型输出

alert(“输出内容”)

  1. 浏览器调试窗口输出

console.log(“输出内容”)

  1. innerHTML和innerText

给获取到的元素一些内容

document.getElementById(‘id名’).innerHTML=‘内容’

  1. document.write(‘输出内容’)

输出内容会清空原有的html再生成一个新的html.


<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Documenttitle>
    head>
    <body>
        <div id='tim'>我是tim盒子div>
        <div id="rewrite">重写div>
        <script type="text/javascript">
            alert('我是弹窗内容')
            console.log('我是在浏览器调试窗口')
            document.getElementById('tim').innerHTML='

我是Tim盒子的内容,我被注入进来了

'
document.getElementById('tim').innerText='

我是Tim盒子内容2,我被注入进来了

'
document.getElementById('rewrite').onclick=function(){ document.write('我是新的html,原本的被窝替代掉了') }
script> body> html>

innerHtml可以带css的标签,innerText不能带css标签

常见的js事件

onclick 鼠标点击事件

onmouseover 鼠标移动到某元素上

onmouseout 鼠标从某元素上面移开

onchange 元素值改变,一般用在表单元素上

onkeydown 用户按下键盘按键

onfocus 元素获得焦点

onblur 元素失去焦点

window.onload 页面加载完成。


<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Documenttitle>
        <style type="text/css">
            #tim{
      
                width: 300px;
                height: 300px;
                background: red;
                margin: 0 auto;
            }

        style>
    head>
    <body>
        <div id="tim">div>
        <input type="" name="" id="xd">
        <script type="text/javascript">
            document.getElementById('tim').onclick=function(){
      
                alert('鼠标移入我的范围内')
            }
            document.getElementById('tim').onmouseover=function(){
      
                console.log('鼠标移入我的范围内了')
            }
            document.getElementById('tim').onmouseout=function(){
      
                console.log('鼠标移出我的范围内了')
            }
            document.getElementById('xd').onchange=function(){
      
                console.log(document.getElementById('xd').value)
            }
            //按下键盘事件
            document.getElementById('xd').onkeydown=function(){
      
                console.log('键盘按下了   ')
            }
            //获取焦点事件
            document.getElementById('xd').onfocus=function(){
      
                console.log('获取焦点事件')
            }
            //失去焦点事件
            document.getElementById('xd').onblur=function(){
      
                console.log('失去焦点事件')
            }
        script>
    body>
html>

动手操作div任意样式

1、创建div和操作按钮

2、获取div和按钮

3、给按钮添加点击事件

4、操作div样式


<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Documenttitle>
        <style type="text/css">
            #tim{
      
                width: 100px;
                height: 100px;
                background: red;
                margin: 0 auto;
            }
        style>
    head>
    <body>
        <button id="taller">增高button>
        <button id="longer">增长button>
        <button id="changebg">改变背景颜色button>
        <div id="tim">div>
        <script type="text/javascript">
            //给我们的增高按钮添加点击事件。
            document.getElementById('taller').onclick=function(){
      
                //获取id名为tim的div
                document.getElementById('tim').style.height='300px'

            }
            document.getElementById('longer').onclick=function(){
      
                //增长
                document.getElementById('tim').style.width='300px'
            }
            document.getElementById('changebg').onclick=function(){
      
                //增长
                document.getElementById('tim').style.background='green'
            }
        script>
    body>
html>

JS的数据类型

  1. 基础数据类型

字符串:string

数字(整型浮点型):number

布尔:boolean

null:空对象

undefined:未定义

  1. 复杂数据类型

数组:Array

对象:Object

  1. 检查数据类型的两种基本方法

typeof

Object.prototype.toString.call(‘数据’)//鉴别复杂数据类型、引用数据类型。


<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Documenttitle>
    head>
    <body>
        <script type="text/javascript">
            //字符串
            console.log(typeof('string'))
            //数字
            console.log(typeof(345))
            //布尔
            console.log(typeof(true))
            //null		就相当于一个空的对象
            console.log(typeof(null))
            //undefined
            console.log(typeof(undefined))
            //object
            console.log(typeof({
      }))
            //鉴别复杂数据类型
            console.log(Object.prototype.toString.call({
      }))
            //数组
            console.log(typeof([]))
            //鉴别复杂数据类型
            console.log(Object.prototype.toString.call([]))
        script>
    body>
html>

其中Object.prototype.toString.call()用于检测复杂数据类型(对象,数组)

JS的变量

  1. 定义变量

var name

  1. 变量的规则

1、首字母必须是字母,或下划线,或美元符号开头,不能是数字。

2、后面的可以是字母,或下划线,或美元符号,或数字,字母区分大小写。

3、例如:var name 和var Name是不同的变量。

4、变量可以理解为取一个别名,方便操作。

  1. 定义一个字符串
var name='zhangsan'
  1. js是先定义再执行的,即使没有写上定义代码,js也会自动定义的,只不过没有赋值。没有赋值就是undefined(未定义)

javaScript学习笔记一:javaScript基础_第1张图片

数据类型之间的转换

  1. js的常见数据类型

显示转换

Number() 转换成数字类型

parseInt() 转换成整型

parseFloat() 转换成浮点数

String() 转换成字符串

toString() 转换成字符串

Boolean() 转换成布尔模型

  1. 隐式转换

操作时转换,

数字和字符串拼接转换成字符串


<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Documenttitle>
    head>
    <body>
        <script type="text/javascript">
            var a='122'
            var b='abc'
            //强制类型转换(显示转换)
            console.log(a,"类型:"+typeof(a))
            console.log(a,"用number进行类型转换后的类型:"+typeof(Number(a)))
            //用number转换一个不是字符串的类型,但内容不是数字,转换后会生成一个NaN类型,是Not a  Number的缩写。
            console.log(b,"类型;"+typeof(b))
            console.log(b,Number(b),"用number进行类型转换后的类型:"+typeof(Number(b)))
            //浮点型转换
            var c=3.1415926
            console.log(c,'整形转换:'+parseInt(c))
            console.log(c,'浮点型转换:'+parseFloat(c))
            //String和toString()效果一样。
            var d=123456
            console.log(d,String(d),typeof(String(d)))
            console.log(d,toString(),typeof(d.toString()))
            //Boolean,只有0是false,其他数字都是true
            console.log(d,Boolean(d))
            var m=-1
            console.log(m,Boolean(m))//true
            //隐式转换
            //数字和数字相加表示求和
            var sum
            sum=1+2
            console.log('sum='+sum)
            //数字和字符串相加表示字符串拼接,这就是隐式转换。
            sum2=1+'2'
            console.log('sum2='+sum2)
        script>
    body>
html>

js创建复杂数据类型数组和对象

  1. 数组的创建
    • 直接创建和利用构造函数创建

var arr=[]//空数组

var arr1=[3,4,5]//有内容的数组

//利用构造函数创建

var arr1=new Array();//创建空数组

var arr2=new Array(10);//创建一个长度为10的数组

var arr3=new Array(5,4,3,2,1);//创建数组并初始化。

  1. 对象创建

var obj={}//创建空对象

var obj={a:1,b:2}//创建有内容的对象。

//利用构造函数创建

var obj=new Object()


<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Documenttitle>
    head>
    <body>
        <script type="text/javascript">
            //直接创建数组
            var arr=[]
            var arr1=[1,2,3,4,5,6]
            //构造函数创建数组
            var arr2=new Array(1,2,4)
            console.log(arr1.length)
            console.log(arr2)
            //对象直接创建
            var obj={
      }
            var obj2={
      a:1,b:2}
            //利用构造函数创建
            var obj3=new Object()
            obj3={
      c:5,d:6}
            obj3.m=6
            obj3.e="123"
            console.log(obj2)
            console.log(obj3)
        script>
    body>
html>

你可能感兴趣的:(前端学习笔记,js数据类型,js基础,javascript)