Текущий поисковый робот становится все сложнее и сложнее. Он уже не тот, что был раньше. Вы можете найти соответствующий URL-адрес, захватив пакет, а затем опубликовать или получить данные для выхода. Другая возможность заключается в том, что веб-сайт краулера, который вы использовали для изучения, слишком прост, и вы не видели этих свирепых. Последние две недели пытаюсь понять как войти в систему.Шифрование параметров заключается в вычитании кода js,но запустить его можно только в браузере.После выполнения на Python будут разные ошибки сообщать. Если вы не знаете JavaScript, вы можете настроить все. Нет, так что без лишних слов, новый континент был открыт. Итак, приступим!
1. Введение в JavaScript
JavaScript — это язык, работающий на стороне клиента, который сильно отличается от Java, который обычно используется на стороне сервера. Но у них также есть сходства, такие как соглашения об именах и названия JavaScript и Java. Остальное вроде ничего, ха-ха.
JavaScript также является языком сценариев, как и Python, это интерпретируемый язык, то есть каждая строка кода интерпретируется, но интерпретатор JavaScript находится внутри браузера.
Первоначально JavaScript использовался для обработки проверки формы, а теперь он используется более широко и, можно сказать, почти всемогущ, например, для разработки на стороне сервера, инструментов командной строки, настольных программ и разработки игр.
После того, как я его выучил, я тоже играл в две маленькие игры-странички и скучал по детству.
2. JavaScript-композиция
EcmaScript: ядро JavaScript, определяет базовый синтаксис и типы данных JavaScript, и это то, что мы изучаем сегодня.
DOM: объектная модель документа, объектная модель документа, используемая для управления элементами страницы на веб-страницах, например, для управления добавлением, удалением, изменением и запросом связанных элементов.
BOM: объектная модель браузера, объектная модель браузера, используемая для работы с окнами браузера, такими как всплывающие окна, управление прокруткой страниц и т. д.
3. Переменные JavaScript
Прежде чем мы поймем переменные, нам нужно знать, где написан код JavaScript:
В линию, то есть написанный в элементе html, не рекомендуется
встроенный, то есть написанное в теге
внешний, то есть код js находится в другом файле, а к html файлу можно получить доступ по ссылке.Этот способ рекомендуется.
Также обратите внимание:
Однострочный комментарий:// содержимое комментария
Многострочные комментарии:/* содержимое комментария */
3.1 Определение и роль переменных
Переменная является идентификатором данных, хранящихся в памяти компьютера, и данные, хранящиеся в памяти, могут быть получены по имени переменной.
Используя переменные, мы можем легче получать или изменять данные в памяти.
3.2 Определение переменных
Использование ключевого слова var для объявления переменных похоже на python, который является языком со слабой типизацией, за исключением того, что python не требует использования ключевых слов для объявления.
Примечание. Метод console.log() просто выводит переменные на консоль.
3.3 Правила именования и спецификации переменных
1): Правила - необходимо соблюдать, если вы их не будете соблюдать, вы сообщите об ошибке, как человеческие законы
Оно состоит из букв, цифр, знаков подчеркивания и $, но не может начинаться с цифры, например: 12asd Имя сообщит об ошибке
Не может быть ключевым словом или зарезервированным словом, таким как var, for и т. д.
-
Строго с учетом регистра, то есть прописные и строчные буквы являются разными переменными.
2): Нормы - рекомендуется соблюдать, но при несоблюдении не будет сообщено об ошибке, например, человеческая мораль.
Имена переменных должны быть осмысленными, потому что его могут понять другие, а также он способствует обслуживанию. Это бессмысленно, как путаница js, которую мы видим, когда нам нужно расшифровать соответствующие параметры. Думать об этом - головная боль.
Подписаться, первая буква — строчная, а первая буква следующих слов — прописная, например: userName
3.4 Маленький кейс
Изучив переменные, можно сделать небольшой кейс: поменять местами два значения
4. Типы данных
В JavaScript есть два типа данных: один — простой тип данных, а другой — сложный тип данных.
Простые типы данныхЧисло, строка, логическое значение, неопределенное значение и нуль.Всего пять
сложные типы данных, такие какobject, Я расскажу об этом позже, не торопитесь.
4.1 Number
Число — это фиксированное представление чисел, используемое для представления целых чисел и чисел с плавающей запятой. Его литерал - это значение, что означает литерал? Литерал — это значение, представленное этой переменной,
Например, буквальное значение переменной a выше равно 12, а буквальное значение b равно 45.
мы также можем использоватьtypeofключевое слово для определения этого типа данных
В дополнение к использованию десятичного числа, как указано выше, для присваивания мы также можем использовать восьмеричное и шестнадцатеричное число.
Восьмеричные числа0 начиная с шестнадцатеричной 0xВ начале другие базы обсуждаться не будут.
Независимо от того, какую базу вы записываете, ее хранение все равно находится в двоичном формате, поэтому это приводит к точности хранения чисел с плавающей запятой,Числа с плавающей запятой могут быть точными только до 17 знаков после запятой..
Видно, что сложение двух чисел с плавающей запятой не очень точное, поэтомуНеобходимо делать суждения при работе с числами с плавающей запятой, могут быть неожиданные результаты, такие как
В дополнение к прямому представлению чисел с плавающей запятой, мы также можем использовать экспоненциальное представление, конечно же, можно использовать и целые числа.
Тип данных Number имеет диапазон, но нам не нужно специально его подсчитывать, просто запомните его ключевые слова.
Последнее ключевое слово:NaN: не число, это представление не является числовым значением.При наличии двух операций с данными это значение будет возвращено в случае сбоя операции. Мы также можем определить, является ли тип данных NaN, используяisNaN()метод.
4.2 String
Строковый тип — это содержимое, заключенное в одинарные или двойные кавычки, аналогично строковому типу Python.
lengthСвойство состоит в том, чтобы получить длину строки.
Чтобы объединить две строки, вы можете использовать +Для подключения обе стороны знака + не обязательно должны быть типами String для подключения.
Подумайте: как распечатать следующие строки
я "красавчик"
Мне нравится "изучать Python"
Здесь есть одинарные и двойные кавычки. Если вы напечатаете напрямую, вы получите ошибку. В настоящее время нам нужно экранировать эти значимые символы и преобразовать их в обычные символы.
В соответствии с приведенными выше escape-символами вы можете написать следующее утверждение
4.3 Boolean
логический тип, только литерал trueа такжеfalse, представляющий истину и ложь, то есть единицы и нули компьютера.
Это можно использовать, когда мы описываем вещи, которые имеют только два результата.
4.4 неопределенный и нулевой
неопределенные средстваПеременная, объявленная без присваивания, поэтому значение переменной по умолчанию не определено.
Null просто означает пустой, если вы хотите установить значение null, вы можете назначить его только вручную.
5. Преобразование типа данных
5.1 Преобразование других типов в тип String
использовать toString()метод
Примечание: неопределенные и пустые типы не могут использовать этот метод.
использоватьString()Принуждение, это работает для любого типа
использовать+ разъемОбъединяйте нулевые символы, что является наиболее удобным и поддерживает все типы
5.2 Преобразование других типов в числовой тип
использоватьNumber() , если его невозможно преобразовать, он вернет NaN, указывая на то, что это не числовое значение.При преобразовании логического типа в число,true превратится в 1, false превратится в 0. Этот метод не поддерживает преобразование строк с другими символами в начале числа в числовые типы, например «12df».
использоватьparseInt(), могут быть преобразованы только в целые числа, иНе удается преобразовать логическое значение. ноМожет преобразовывать строки, начинающиеся с цифр и содержащие символы. Это может быть применено, когда, например, "16px" преобразуется в значение, и его можно использовать. NaN также возвращается, если его невозможно преобразовать.
использовать parseFloat()Может быть преобразован в число с плавающей запятой, а также может быть преобразован в целое число, если строка является целым числом. нужно знать, это:Когда в строке есть две десятичные точки, будет преобразовано только число до второй десятичной точки, а последнее будет рассматриваться как строка.
Используйте + или -, чтобы сделать значение положительным или отрицательным. Эта функция похожа на число.
Использование - для вычитания для преобразования. Использование этого оператораСначала преобразуйте типы слева и справа в числовые типы, а затем используйте, поэтому его можно использовать для вычитания 0.Что касается +, он не работает, потому что он используется для конкатенации строк.
5.3 Преобразование других типов в логические типы
это использование Boolean()Вы можете перевернуть его, все типы могут быть перевернуты.Превращается в false для null, undefined, NaN, 0 и пустой строки, иначе верно.
На самом деле, это также может быть использованонеявное преобразование, то есть вам не нужно вручную крутить его самостоятельно, интерпретатор автоматически поможет нам его крутить. Неявное преобразование обычно используется в случае операторов суждения. Неявное преобразование может сократить написание кода. Когда дело доходит до суждения заявления, давайте поговорим об этом ниже!
6. Операторы
Операторы - это символы, используемые для работы с типами данных. Операторы в каждом языке похожи. Давайте поговорим об этом здесь, чтобы быть более глубоким!
6.1 Арифметические операторы
имеют+ - * / %Пять, любое число, деленное на 0, равно бесконечности, 0 по модулю равно NaN.
6.2 Унарные операторы
Унарные операторы — это операторы, для которых требуется только один операнд.++, -- и !
префикс++: например, a++, переменная стоит первой, этоСначала верните результат переменной, а затем добавьте 1 к себе,
пост ++: например, ++a, после переменной этоСначала добавьте 1 к самой переменной, а затем верните результат
И -- то же самое, за исключением того, что он вычитает из себя 1, и вам нужно обратить внимание на порядок унарного оператора переменных в операции.
!, чтобы инвертировать операнд и вернуть логический тип
6.3 Логические операторы
Логические операторы&& , || и !, !, также являются унарными операторами, потому что они работают только с одним операндом.
&&: Это оператор И, толькоВозвращает true, если обе стороны верны, иначе возвращает false.
||: это оператор ИЛИ,Возвращает false, только если обе стороны ложны, в противном случае возвращает true.
6.4 Реляционные операторы
Реляционные операторы = == != === и !==. После операции все они возвращают тип Boolean, поэтому я не буду здесь вдаваться в подробности, все они похожи, только разница между == и === и разница между !== и !=.== только оценивает, равны ли литералы двух значений или нет, но не оценивает тип данных, в то время как === сначала оценивает тип данных, а затем литерал.То же самое верно и для разницы между != и !== .
6.5 Операторы присваивания
Оператор присваивания имеет+= -= *= /= %= =шесть.
+= состоит в том, чтобы сложить значения слева и справа и присвоить их значению слева, остальные такие же, поэтому много говорить не буду.
6.6 Приоритет оператора от высокого к низкому (порядок операций)
()
унарный оператор
арифметические операторы,Сначала */потом +- при одинаковом уровне
Реляционные операторы: > >=
Операторы равенства: == === != !==
Логические операторы:&& затем ||
оператор присваивания
7. Структура процесса
В JavaScript есть три структуры процесса, а именно последовательная структура, структура ветвления и структура цикла, которые похожи на python.
Последовательная структура означает, что код выполняется сверху вниз, структура ветвления означает, что различные операторы выполняются в зависимости от того, верно ли заданное условие, а структура цикла означает, что определенный фрагмент кода выполняется многократно. .
Я не буду много говорить о структуре последовательности. Код, который мы только что запустили, является структурой последовательности. Теперь давайте поговорим о структуре ветвления.
7.1 Структура филиала
Используя структуру ветвей, вы можете использовать операторы if и else, которые аналогичны Python.
один оператор if
Когда дело доходит до суждения,Неявное преобразование, то есть значение в скобках if будет неявно преобразовывать любой тип значения в логический тип.. следующим образом:
Другая форма оператора перехода:
использовать if-else вместе
Существует также более простой способ записи этой комбинации if-else, который называетсяТернарный оператор, синтаксис
Когда выражение 1 истинно, будет возвращено значение выражения 2, в противном случае будет возвращено значение выражения 3. У этого есть недостаток, заключающийся в том, что должен быть результат для возврата.
Существует также форма оператора перехода:
если-иначе если-если три вместе
Мы также можем использовать три вышеупомянутых комбинированныхswitch Заявление переписать, это ключевое слово выбора. Синтаксис
После перезаписи:
Поскольку значение case может быть только значением, а не диапазоном, поэтому для его решения используется деление, в противном случае необходимо записать большое количество случаев.Не забудьте написать break, иначе он будет продолжать работать после сопоставления с соответствующим значением, независимо от того, соответствует ли значение case или нет, пока не встретит break или не будет работать до конца..
7.2 Структура цикла
Циклическая структура JavaScript также имеетwhileа также forпредложение, но у него все еще естьdo-whileутверждение.
-
для выписки: обычно вОпределяет количество цикловЭто удобнее использовать, синтаксис такой:
Это сначала выполняет выражение инициализации 1, а затем выполняет выражение оценки 2. Если условие выполнено, тело цикла будет выполнено.После выполнения тела цикла будет выполнено выражение самоинкремента 3, а затем оценено. Следующим шагом является повторение действия только сейчас, пока выражение суждения 2 не будет удовлетворено..
в то время как заявление: вНевозможно определить количество цикловВы можете использовать это, когда используете это, и вам нужно обратить внимание на условия конца цикла, чтобы избежать написания бесконечного цикла. Синтаксис:
После выполнения условия цикла выполняется тело цикла, а затем выполняется условие цикла.Следующим шагом является повторение действия только сейчас, пока условие не будет выполнено..
оператор do-while: также используется, когда количество циклов неизвестно, ноКогда тело цикла все равно нужно выполнить один разВы можете использовать это. Синтаксис:
Сначала выполните тело цикла, затем оцените условие цикла, а затем повторите предыдущее действие, пока условие цикла не будет выполнено..
В структуре цикла вы также можете использовать разрыв и продолжать выходить из цикла.break — это выпрыгнуть из всего цикла, то есть конец цикла, а continue — это выпрыгнуть из этого цикла, а затем в следующий цикл.
Узнав о циклах, мы также можем попробовать самостоятельно напечатать треугольник или таблицу умножения на 99, чтобы убедиться в этом.
Эти две идеи похожи, пока вы понимаете первый треугольник, следующая таблица умножения будет решена естественным образом, поэтому я не буду здесь больше говорить.
Следующая часть начнет вводить сложный тип данных, а именно объект, вы готовы?